Just a couple of small changes I needed to get the migrations working with SQLAlchemy 0.7.x on Fedora 16
This commit is contained in:
@@ -75,8 +75,8 @@ def new_style_quotas_table(name):
|
||||
)
|
||||
|
||||
|
||||
def existing_quotas_table(migrate_engine):
|
||||
return Table('quotas', meta, autoload=True, autoload_with=migrate_engine)
|
||||
def quotas_table(migrate_engine, name='quotas'):
|
||||
return Table(name, meta, autoload=True, autoload_with=migrate_engine)
|
||||
|
||||
|
||||
def _assert_no_duplicate_project_ids(quotas):
|
||||
@@ -179,13 +179,18 @@ def upgrade(migrate_engine):
|
||||
# bind migrate_engine to your metadata
|
||||
meta.bind = migrate_engine
|
||||
|
||||
old_quotas = existing_quotas_table(migrate_engine)
|
||||
old_quotas = quotas_table(migrate_engine)
|
||||
assert_old_quotas_have_no_active_duplicates(migrate_engine, old_quotas)
|
||||
|
||||
new_quotas = new_style_quotas_table('quotas_new')
|
||||
new_quotas.create()
|
||||
convert_forward(migrate_engine, old_quotas, new_quotas)
|
||||
old_quotas.drop()
|
||||
|
||||
# clear metadata to work around this:
|
||||
# http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=128
|
||||
meta.clear()
|
||||
new_quotas = quotas_table(migrate_engine, 'quotas_new')
|
||||
new_quotas.rename('quotas')
|
||||
|
||||
|
||||
@@ -193,11 +198,16 @@ def downgrade(migrate_engine):
|
||||
# Operations to reverse the above upgrade go here.
|
||||
meta.bind = migrate_engine
|
||||
|
||||
new_quotas = existing_quotas_table(migrate_engine)
|
||||
new_quotas = quotas_table(migrate_engine)
|
||||
assert_new_quotas_have_no_active_duplicates(migrate_engine, new_quotas)
|
||||
|
||||
old_quotas = old_style_quotas_table('quotas_old')
|
||||
old_quotas.create()
|
||||
convert_backward(migrate_engine, old_quotas, new_quotas)
|
||||
new_quotas.drop()
|
||||
|
||||
# clear metadata to work around this:
|
||||
# http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=128
|
||||
meta.clear()
|
||||
old_quotas = quotas_table(migrate_engine, 'quotas_old')
|
||||
old_quotas.rename('quotas')
|
||||
|
||||
@@ -40,13 +40,17 @@ def upgrade(migrate_engine):
|
||||
migrations.create_column(new_instance_type_id)
|
||||
|
||||
# Convert flavor_id to instance_type_id
|
||||
itypes = {}
|
||||
for instance_type in migrate_engine.execute(instance_types.select()):
|
||||
itypes[instance_type.id] = instance_type.flavorid
|
||||
|
||||
for instance_type_id in itypes.keys():
|
||||
migrate_engine.execute(migrations.update()\
|
||||
.where(migrations.c.old_flavor_id == instance_type.flavorid)\
|
||||
.values(old_instance_type_id=instance_type.id))
|
||||
.where(migrations.c.old_flavor_id == itypes[instance_type_id])\
|
||||
.values(old_instance_type_id=instance_type_id))
|
||||
migrate_engine.execute(migrations.update()\
|
||||
.where(migrations.c.new_flavor_id == instance_type.flavorid)\
|
||||
.values(new_instance_type_id=instance_type.id))
|
||||
.where(migrations.c.new_flavor_id == itypes[instance_type_id])\
|
||||
.values(new_instance_type_id=instance_type_id))
|
||||
|
||||
migrations.c.old_flavor_id.drop()
|
||||
migrations.c.new_flavor_id.drop()
|
||||
|
||||
Reference in New Issue
Block a user