diff options
| author | Jason Koelker <jason@koelker.net> | 2011-09-15 15:43:32 -0500 |
|---|---|---|
| committer | Jason Koelker <jason@koelker.net> | 2011-09-15 15:43:32 -0500 |
| commit | 5675ac808e49845b91bca300a67ce4e9ad7f04c8 (patch) | |
| tree | 879aa9f0d408b61fb8590ae9ec152ecaffe51808 | |
| parent | 7151a76f31de9edb82df04daccdb9073d82e7535 (diff) | |
| download | nova-5675ac808e49845b91bca300a67ce4e9ad7f04c8.tar.gz nova-5675ac808e49845b91bca300a67ce4e9ad7f04c8.tar.xz nova-5675ac808e49845b91bca300a67ce4e9ad7f04c8.zip | |
well since sqlalchemy-migrate and sqlalchemy can't agree on what the FK is called, we fall back on just manually dropping it
| -rw-r--r-- | nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py b/nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py index 1b32867fb..4b2b9cd9a 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py @@ -37,23 +37,32 @@ def upgrade(migrate_engine): # bind migrate_engine to your metadata meta.bind = migrate_engine dialect = migrate_engine.url.get_dialect().name + if dialect.startswith('sqlite'): + return + try: - if not dialect.startswith('sqlite'): - ForeignKeyConstraint(columns=[vifs.c.instance_id], - refcolumns=[instances.c.id]).drop() + ForeignKeyConstraint(columns=[vifs.c.instance_id], + refcolumns=[instances.c.id]).create() except Exception: - logging.error(_("foreign key constraint couldn't be removed")) - raise + try: + migrate_engine.execute("ALTER TABLE migrations DROP " \ + "FOREIGN KEY " \ + "`virtual_interfaces_ibfk_2`;") + except Exception: + logging.error(_("foreign key constraint couldn't be removed")) + raise def downgrade(migrate_engine): # Operations to reverse the above upgrade go here. meta.bind = migrate_engine dialect = migrate_engine.url.get_dialect().name + if dialect.startswith('sqlite'): + return + try: - if not dialect.startswith('sqlite'): - ForeignKeyConstraint(columns=[vifs.c.instance_id], - refcolumns=[instances.c.id]).create() + ForeignKeyConstraint(columns=[vifs.c.instance_id], + refcolumns=[instances.c.id]).create() except Exception: logging.error(_("foreign key constraint couldn't be added")) raise |
