I recommend that you manually script each change. Not all database schema changes can be done "trivially", i.e. just with an ALTER TABLE. Some of them require a more elaborate process.
If you want any reproducability between your dev environments and your staging / production environments, changes MUST be scripted.
Some tools do exist to automatically write these scripts, but they aren't that great. Perhaps they can save a little legwork though.
Traditionally, I've written each change in its own script and date-stamped it, so that when I need to run several of these scripts they can be run in the appropriate (date) order so that things don't get done out of sequence. This can be easily automated using a shell script.
The only trick is, I made a rule that a database upgrade script must never do anything "bad" if the thing that it's doing is already done - only fail. This sometimes has made these scripts nontrivial.
Mark