How would I be able to track all changes to my database?
I need a way to find out exactly what changes I made to the database so that I can make the same changes on anot
I have been reading on the net about schemas, is this a useful way to compare databases and find any changes?
Have you considered using MySQL Replication to do this? You really don't want to implement this yourself unless you have to for some reason.
phpmyadmin had a GSoC project involving replication this summer by Tomas Srnka. i think it made it’s way to trunk already
there is many tools to make data compare : - Database Worbench - EMS sql manager - SQL Maestro - Database comparer
but this tools can also be used for creating update script
Take a look at LiquiBase
It allows you to describe database changes as XML so you can maintain your database structure in your VCS just like your code.
A non-automated but useful way to keep track of changes to a db is with the MySQL Query Browser. It keeps a history of all operations you run while using it. This makes assembling a change script very straightforward.
Obviously, this is not a solution if you're looking to replicate all changes made by all users. But if you are just looking to keep a set of changes in the correct order and avoid retyping them, it works pretty well.