FOSS version of SQLCompare or something similar? - sql-server

Actually, free is good enough, it doesn't have to be open source :)
I'm currently using the Schema Compare utility of VS2008, but it doesn't have a command line interface and has some other weaknesses as well.
I'm wondering what free tools others are using to provide command line schema comparisons/synchronizations?
Thanks.

A few months ago I compared a bunch of comparison tools including Starinix and OpenDBiff.
Overall I was dissapointed, SqlDelta and SqlCompare are in a league of their own.

We may suggest our own tool - dbForge Schema Compare for SQL Server, but it's a 30-days trial shareware. But anyway, you can get a free license, just visit our free license conditions page.

Related

How to view the file difference?

I'm having two versions of PHP scripts. I forgot which lines I modified in the new version.
I have more than 100 files. So can anyone tell me how to bulk view the difference by comparing two directories?
Thanks
PS: If you guys know any free or paid tool please let me know.
In Unix/Mac environments:
diff -rq dirA dirB
There are plenty of command-line and GUI tools for Windows as well. Also consider using any vcs, modern dvcs systems like git and mercurial are very well suited even for a single developer.
See also:
https://serverfault.com/questions/79226/different-files-of-two-directories
One of the best paid tools : Beyond Compare 3 http://www.scootersoftware.com/
You could combine a simple shell-script loop with the diff command... but yes, as Andreas AL mentioned, source control is a more robust solution to your problem.

Any solution as how a database version tool should be?

I am trying to making a tool which can help in maintaining data base version(like maintaining source code version). The technology which I am thinking to use is spring-hibernate so that the tool can be web based and it can be used by multiple project . The idea is that any database change can only be triggered with the help of this tool,so that the database version information can be maintained and the database can be made consistent .Operations like commit,roll back,branching,merging should be possible. Can you suggest me that how should I approach to this problem?
I have found an opensource tool called LiquidBase which has already provided some sort of solution in maintaining database version. Here is a short preview on what this tool can do. But this tool has some limitations like it does not handle stored procedures and triggers and it works on the basis of an XML file . But I think I can integrate this tool with my requirement and I can speed up development. If you have any other tool in knowledge which can be better than this then please let me know.
If possible tell me that how the tool should be organized so that different project can easily maintain their database version. What all problem the tool should try to address and what minimum support should at least be there in this tool? What should be the UI so that user should be easily able to use it.?

Bugzilla Reporting

Is there a really good free tool for BugZilla reporting? I am finding the default search options on the web interface far too limiting. My biggest issue is with the lack of Order By options (only 1 field at a time, and a very limited set of fields to choose from). I have done some Google searches, but I can't find any good free BugZilla reporting tools.
If there isn't one, can someone please point me to an example on how to access the BugZilla web services? If I can get the BugZilla data, then I can easily build my own reports that will better meet our needs.
Take a look at this: http://www.faqs.org/docs/bugzilla/dbdoc.html
Use this database schema for reference: faqs.org/docs/bugzilla/dbschema.html
If you need a web-interface, use your favorite dynamic website scripting language that can access MySQL databases (say PHP)...
Simple-ish Tutorial: freewebmasterhelp.com/tutorials/phpmysql/4
PHP MySQL API Reference: php.net/manual/en/ref.mysql.php
Then use SQL queries such as:
"SELECT * FROM bugs WHERE WHERE bug_status != 'RESOLVED' ORDER BY creation_ts ASC, votes DESC LIMIT 50"
which lists first 50 entries of unresolved bugs ordered first ascending creation time then descending by number of votes.
I have used this in the past and have liked it a lot: http://www.mediawiki.org/wiki/Extension:Bugzilla_Reports
You can also consider other tool eg mantis
(http://www.mantisbt.org/)
I've personally switched from Bugzilla into Mantis and installed some plugins (http://deboutv.free.fr/mantis/) and found this more comfortable
If you are a Java user, you might want to check out Mylyn for eclipse. This is integrates a task-driven development approach into eclipse.
With that, you can raise bugs, tie together SVN changes and bugs, and hide classes that are not relevant to fixing bugs, etc. It's a bit involved to get started with, but quite powerful.
It also comes with a connector for BugZilla. See this introductory article for an example.
If you don't use eclipse, but you do use Java, then note that since Mylyn is open-source, you might want to look at the source code of the Mylyn BugZilla connector for how they do their work.
Good luck.
You can try Deskzilla (http://deskzilla.com/) - it is a multi-platform desktop client for Bugzilla with Outlook-like interface, rich reporting and filtering capabilities, offline work, drag-n-drop, etc. It's a commercial product, but if you're working on an Open Source project you can use it for free.
AFAIK Bugzilla uses MySQL database for storing data. So probably you can connect with some visual db manager (plenty of it exists, see Toad Data Modeler, DbVisualizer) and try do do some sql work...
There is a list of some add-ons (free and commercial) listed on the Buzilla addons wiki.
If you are a Windows user, MyZilla is a possible option.
Otherwise, to work toward your own, see the Bugzilla API documentation, which, in a way, includes how to retrieve the current schema (Bugzilla::DB::Schema), and Bugzilla::WebService.
Netbeans also has Bugzilla integration (I haven't tried it...).
I have analized a bunch of bug tracking tools.
You can try track or mantis, because bugzilla is very unfriendly about reporting.
Mantis
Mantis can export data in excel: all the graphic you need can be generated by that sheet.
For more information take a look to my blog:
http://gioorgi.com/2008/bug-tracking-mantis/
Anyway, Track is used a lot more, so for sake of completeness I should cite it:
Track
Pros:
Can Also work with an embedded database (using sqlite).
Easy to setup and use.
Cons:
Feature are too much, and aims to be also a CMS to some extend.
Take a look to:
http://gioorgi.com/2008/bug-tracking-trac/
Since Bugzilla can be installed on your own server, I presume the simplest way is to do that and play with the databases it creates ("Bugzilla supports MySQL, PostgreSQL and Oracle as database servers"). The documentation also says you can modify the templates as you like.
Otherwise one could try paid support or some other bug trackers.
I use this bookmarklet and like how it searches right with the strings entered in the location bar like smart search. It lets you quickly search bugzilla or jump to a bug number via Bugzilla Quicksearch, and is IE6+, Moz, Op7+ compatible.
Its companions on the same page can be used to refine or help with bug search/report, e.g. collect buglinks (queries bugzilla to show a list of bugs linked to from the current page),ord buglinkify (turns all numbers on the page into bug links).

Best place to start for learning SSIS

what is the best place to start learning about SQL Server 2005 Integration services?
I'm looking for links for setup and tutorials on how to get started. I've read I need a toolkit called SSIS designer however I haven't been able to find it on the SQL Server Enterprise ed dvd nor online anywhere. I did come across some links in various forums but they are now broken.
What version of SQL Server are you using? If you're using SQL Server 2000, then you're out of luck: SSIS didn't exist back then, and you don't want to know what did.
SSIS is sufficiently rich and complicated that I would not recommend a "tutorial". I'm afraid I have to recommend you read a book (and follow the exercises!). The one that taught me was Microsoft® SQL Server(TM) 2005 Integration Services Step by Step.
You want to install Business Intelligence Studio from the SQL Server DVD. That installs Visual Studio if you didn't already have it, and also installs the templates and tools necessary to develop in SSIS.
I've found lots of good info at SSIS Junkie (http://blogs.conchango.com/jamiethomson/).
And MS has some interesting web casts.
I liked the well written tutorial at http://www.accelebrate.com/sql_training/ssis_tutorial.htm
give it a try.
Once you get past the basics, this tutorial/example shows how to use looping, variables and expressions to do some cool stuff: http://www.sqlmag.com/Articles/ArticleID/95385/pg/3/3.html
The example is aimed at administration and monitoring, but can be applied to many things.
Looks like it's subscriber only now, but you can get the source.
In a nutshell, you store servernames is a table, put them in an 'object' variable and then loop through them performing whatever actions you'd like.
Your connection to 'source server' changes based on expressions you define in the properties window.
I'd suggest you look at SQLIS.com, it's a great site written by some SSIS experts. There are a number of blogs, and we have some articles at SQLServerCentral.com, though not sure we have a good "get started" series.
PragmaticWorks does a lot of SSIS and I've started to see some details on their blog about the various tasks.
IF you are working on a Business Intelligence project I suggest the white-papers from www.SQLBI.com for reference. If you understand the basic termonology of standard BI practicies, this will present a good set of best practices. It may be a little complex though if you are just starting out.
I have also found the video training provided by vconferenceonline/SSWUG (http://www.vconferenceonline.com/shows/summer09/uvc/sessions.asp?id=2) to be very useful. Not free - but relatively cheap.

Generate Data Change Scripts from VSTS Database Edition

I'm using the GDR release of VSTS Database edition source control the DB and generate deployment scripts. It works pretty well but the problem is that it only seems to handle scripting and deploying the schema. It stops short of handling scripting and deployment of the actual data itself (i.e. the lookup and standing data which also deployed with the DB).
I know it's easy enough to write the deployment scripts by hand, but is this what every one does? Is there a recommended way of deploying data with the VSTS deployment engine? Is there some tooling that help with this - I don't mean a full product like SQLCompare, just something that fills the gap with VSTS DB.
Thanks in advance.
Kaneda
The VSTS: DB best practices blog advocates using post-deployment scripts to insert reference data into temporary tables, then update the target tables based on the delta (ie update x inner join temp where x.something <> temp.something)
There's some suggestions floating around that this might make a powertool, and at least one MVP has written a tool to generate those scripts.
(NB: I haven't tried this - I only just found out about it myself)
Personally I would still stick with RedGate if I had any choice in the matter.
GDR comes with a data comparison engine, but as far as I've been able to tell so far a data comparison can't even be stored in a project (let alone be properly supported by it) - so it's pretty ad-hoc. Unlike a Schema Compare, there is no File \ Save As.
The comparison engine can be automated via DDE but that's automation within the Visual Studio IDE, and not really suitable for some kind of scripted installation process. As much as anything there's no way I could see to specify which tables to include in the comparison (since all you get to do via DDE is open the wizard for the user to select)
Alternatively all the functionality appears to reside in Microsoft.VisualStudio.TeamSystem.DataPackage.dll , but since the API documentation hasn't been written yet (the help doco that comes with GDR is full of errors as it is) it's going to be a bit of a hit-and-miss adventure to work out where to start.
As someone who's used RedGate's SqlCompare, SqlDataCompare and their respective APIs to do this before, much of the GDR functionality seems a bit half-baked to me.
What I will probably do this time round is sync the data with a SSIS package (export to CSV at build time / import from CSV at install time), but I'd far rather be using the SqlDataCompare API (or SqlPackager) right now.

Resources