summaryrefslogtreecommitdiffstats
path: root/nova/db
diff options
context:
space:
mode:
authorJason Koelker <jason@koelker.net>2011-09-15 15:43:32 -0500
committerJason Koelker <jason@koelker.net>2011-09-15 15:43:32 -0500
commit5675ac808e49845b91bca300a67ce4e9ad7f04c8 (patch)
tree879aa9f0d408b61fb8590ae9ec152ecaffe51808 /nova/db
parent7151a76f31de9edb82df04daccdb9073d82e7535 (diff)
downloadnova-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
Diffstat (limited to 'nova/db')
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/047_remove_instances_fk_from_vif.py25
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