PyMigrate
As an active Python developer I find it rather tedious to continuously deploy production database changes and having the application down for an extended time because I’m running database migrations through imports. What’s really bad is that there may be many imports because several developers have checked in their needed migrations as well.
Then there’s the dreaded roll back. Better have that db dump you created before the deployment. Ruby on Rails however solved this with ActiveRecord::Migration. With this you just simply run rake db:migrate and boom your database is brought up to where it needs to be. Need to roll back run the command again with the pre-deploy version and it gets done. All the migrations needed and with one command.
Starting this application I made several requirements. Multi database systems support, and can be used stand-alone or with a framework. MySql is the database I predominately use so that is the first database supported. I’ve worked with several Python frameworks and using the PyMigrate class I can integrate with them if I need to, but I also use it stand-alone for my other non-framework applications.
So what can you do with PyMigrate?
Create/Drop Tables.
Add/drop/rename/change columns on tables
Add/remove indexes on table
Run raw sql
Run Python code. YES I said that and it was important for me to include this as it’s extremely beneficial. Supports: development, qa and production environments out of the box. You can add more if need be.
I am releasing in this fashion to let all those interested in taking a crack at the code and I would appreciate all feedback. Make sure to read the README.txt for configuration and operation. I have also included a sample database migration for a few possibilities
Source: PyMigrate .1RC.gz

You may also find this at: http://code.google.com/p/pymigrate/
Get this hosted up somewhere where people can contribute. I think you may be onto something neat here – there is another migrations framework for Python, but it’s always nice to have choice.
@Pete
I did learn of sqlalchemy-migrate http://code.google.com/p/sqlalchemy-migrate/ just a few days ago.
The thing is you need to know SqlAlchemy to use it. I don’t use it regularly and don’t expect everyone else to as well. Just as I don’t expect everyone to know MySqldb, or any other db API’s.
So formatting the migration is a neutral way was the best choice. As an added benefit, using the migration format akin to Rails means that more Rails developers new to Python can quickly come up to speed, or at least that’s my theory.
Hosting coming soon.