Wondering if you'll be able to possess a version charge of a MySQL database.

I recognize this continues to be requested before nevertheless the latest is several months ago, and also at the speed things change...

The issue is coming that every developer has apache/MySQL/PHP by themselves computer systems that they often edit the database. Its rather bothersome should they have to transmit an e-mail to the rest of the designers after which by hand edit the exam servers database.

How can you cope with this issue?


This isn't a MySQL-related solution by itself, but we have had lots of success having a product known as liquibase. (http://world wide web.liquibase.org/)

It is a migration solution which provides coverage for a variety of database suppliers, permitting all database changes to become created in configuration files, which are stored in Subversion. Since all configuration is stored in XML files, it's not hard to merge other individuals changes in to the mainline script also it plays well with tags and branches.

The database could be raised to the present revision level by running the "update database" command. Most changes also be capable of roll-back a database change, which may be useful too. I would suggest following the concept of ensuring you receive current before you run the migration, because this would probably be simplest.

Finally, if this involves a production delivery, you are able to decide to have the database changes output like a full SQL script therefore it makes it possible for DBAs to operate it and keep a separation of responsibilities.

To date, it's labored like no bodies business.

We use Rails which will keep all of the alternation in the migration files. I understand that a few PHP frameworks perform the same factor - Symphony for example. Then when all the new changes get within our repository ( we user mercurial) - we are able to see all the new changes in migrations that require to or were put on database in development. Compared to person accountable for production comes out code to production following a full backup is created. However if you do not make use of a PHP framework that can take proper care of this than, awied's suggestion sounds quite interesting - I've not heard about liquidbase before however i will certainly take a look.

There's something known as iBatis, now known as MyBatis that handles versions of databases perfectly.

It requires worksome work to possess all of your alterations in script rather than having a graphical tool, but, if you're acquainted with coding, it's no problem.

If you have multiple databases (like dev-test-push), you simply make 3 atmosphere files and you will update one atmosphere with just one command-line instruction.