views:

368

answers:

3

We are currently in the process of solidifying a database change management process. We run MySql 5 running on RedHat 5. I have selected LiquiBase as the tool because it's open source and allows us to expand its functionality later if needed. It also seems to be one of the few free projects that are still active. Has anyone here had any experience using LiquiBase or other Db versioning tools?

Company Background: We are an SaaS company providing a 7/24 hosted application. There are dozens of instances running different versions of the same database and we need a way to manage the deploy process as it's starting to get out of control. The databases have hundreds of tables and we typically do releases once every 3 months.

+1  A: 

Doctrine, a PHP ORM/DBAL offers Migrations, doing what you want.

The Doctrine migration package allows you to easily update your production databases through a nice programmatic interface. The changes are done in a way so that your database is versioned and you can walk backwards and forwards through the database versions.

Karsten
The problem with Doctrine is it literally "versions" the database. That doesn't really scale with branching and a plethora of other circumstances.
zodeus
+1  A: 

I may be biased since I started LiquiBase, but I have been using it in production environments for several years and there have been many, many times where releases would have been a nightmare without it. LiquiBase has evolved to be very flexible and powerful and I have not ran into a situation that it was not able to handle (in one way or another) for quite some time.

The last code release contained of a project I am working on using LiquiBase contained a major database refactoring with hundreds of database changes and needed to be applied to a variety of installations that had different starting points for the database. When we did the release, the databases updated without any problems.

Nathan Voxland
A: 

Hi, Let me refer you to one of the most advance database change management tool - this is TeamWork of dbMaestro that from what I gather does exactly what you need. Howevever, I am not sure if this product is only for Oracle right now... pleace see for yourself.