----- Original Message -----
> From: "Sean Dague" <[email protected]>
> To: [email protected]
> Sent: Friday, April 27, 2012 10:21:17 AM
> Subject: Re: [Openstack] database migration cleanup
>
> On 04/26/2012 03:24 PM, Dan Prince wrote:
> <snip>
> > I think this scheme would support users who follow stable releases
> > as well as users who follow trunk very closely.
> >
> > We talked about this at the conference but I thought this issue
> > might be near and dear to some of our end users so it was worth
> > discussing on the list.
> >
> > What are general thoughts on this approach?
>
> Is there any support in sqlalchemy, or related tools, to handle
> migrations the way rails does, where a schema file is created at the
> end
> of every migration? It would be ideal if we both had a full migration
> history, as well as a short cut at any snap shot to get to the end.
Ah. Yes, the Rails schema.rb. I looked around for just this sort of thing and
didn't find much. Python-migrate has some "experimental" support for generating
models and I did make use of that initially. See 'create_model' below:
[root@nova1 migrate_repo]# python ./manage.py --repository=./
--url=mysql://nova:password@localhost/nova
Usage: manage.py COMMAND ...
Available commands:
compare_model_to_db - compare MetaData against the current
database state
create - create an empty repository at the
specified path
create_model - dump the current database as a Python
model to stdout
db_version - show the current version of the
repository under version control
downgrade - downgrade a database to an earlier
version
drop_version_control - removes version control from a database
help - displays help on a given command
make_update_script_for_model - create a script changing the old
MetaData to the new (current) MetaData
manage - creates a Python script that runs
Migrate with a set of default values
script - create an empty change Python script
script_sql - create empty change SQL scripts for
given database
source - display the Python code for a particular
version in this repository
test - performs the upgrade and downgrade
command on the given database
update_db_from_model - modify the database to match the
structure of the current MetaData
upgrade - upgrade a database to a later version
version - display the latest version available in
a repository
version_control - mark a database as under this
repository's version control
----
python-migrate's 'create_model' does not however give you something that
exactly matches the schema you'd get by running the all the migrations. So auto
generation doesn't appear to be an option right now. It would be nice to
contribute python-migrate in this regard and get better support for model
generation, etc. Maybe a good long term goal?
Dan
>
> -Sean
>
> --
> Sean Dague
> IBM Linux Technology Center
> email: [email protected]
> alt-email: [email protected]
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : [email protected]
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>
_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help : https://help.launchpad.net/ListHelp