]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Allow stack.owner_id to store a uuid.
authorSteve Baker <sbaker@redhat.com>
Wed, 14 Nov 2012 20:11:47 +0000 (09:11 +1300)
committerSteve Baker <sbaker@redhat.com>
Wed, 14 Nov 2012 20:11:47 +0000 (09:11 +1300)
Fixes bug 1078854

Change-Id: I3dae1502968853d563ba52bc1d6656c48d5d18ba

heat/db/sqlalchemy/migrate_repo/versions/013_owner_id_uuid.py [new file with mode: 0644]

diff --git a/heat/db/sqlalchemy/migrate_repo/versions/013_owner_id_uuid.py b/heat/db/sqlalchemy/migrate_repo/versions/013_owner_id_uuid.py
new file mode 100644 (file)
index 0000000..f1a8d8b
--- /dev/null
@@ -0,0 +1,63 @@
+from sqlalchemy import *
+from migrate import *
+from heat.common import utils
+
+
+def upgrade(migrate_engine):
+    meta = MetaData(bind=migrate_engine)
+
+    stack = Table('stack', meta, autoload=True)
+
+    dialect = migrate_engine.url.get_dialect().name
+
+    if not dialect.startswith('sqlite'):
+        fkeys = list(stack.c.owner_id.foreign_keys)
+        if fkeys:
+            fkey_name = fkeys[0].constraint.name
+            ForeignKeyConstraint(columns=[stack.c.owner_id],
+                    refcolumns=[stack.c.id],
+                    name=fkey_name).drop()
+
+    stack.c.owner_id.alter(String(36), nullable=True)
+
+    fkeys = list(stack.c.owner_id.foreign_keys)
+    if fkeys:
+        fkey_name = fkeys[0].constraint.name
+        ForeignKeyConstraint(columns=[stack.c.owner_id],
+                refcolumns=[stack.c.id],
+                name=fkey_name).create()
+
+
+def downgrade(migrate_engine):
+    meta = MetaData()
+    meta.bind = migrate_engine
+
+    dialect = migrate_engine.url.get_dialect().name
+
+    if dialect.startswith('sqlite'):
+        return
+
+    stack = Table('stack', meta, autoload=True)
+
+    fkeys = list(stack.c.owner_id.foreign_keys)
+    if fkeys:
+        fkey_name = fkeys[0].constraint.name
+        ForeignKeyConstraint(columns=[stack.c.owner_id],
+                refcolumns=[stack.c.id],
+                name=fkey_name).drop()
+
+    stack.c.owner_id.alter(Integer, nullable=True)
+
+    fkeys = list(event.c.stack_id.foreign_keys)
+    if fkeys:
+        fkey_name = fkeys[0].constraint.name
+        ForeignKeyConstraint(columns=[event.c.stack_id],
+                refcolumns=[stack.c.id],
+                name=fkey_name).create()
+
+    fkeys = list(stack.c.owner_id.foreign_keys)
+    if fkeys:
+        fkey_name = fkeys[0].constraint.name
+        ForeignKeyConstraint(columns=[stack.c.owner_id],
+                refcolumns=[stack.c.id],
+                name=fkey_name).create()