--- /dev/null
+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)
+ event = Table('event', meta, autoload=True)
+ resource = Table('resource', meta, autoload=True)
+
+ dialect = migrate_engine.url.get_dialect().name
+
+ if not dialect.startswith('sqlite'):
+ 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).drop()
+
+ fkeys = list(resource.c.stack_id.foreign_keys)
+ if fkeys:
+ fkey_name = fkeys[0].constraint.name
+ ForeignKeyConstraint(columns=[resource.c.stack_id],
+ refcolumns=[stack.c.id],
+ name=fkey_name).drop()
+
+ stack.c.id.alter(String(36), primary_key=True,
+ default=utils.generate_uuid)
+ event.c.stack_id.alter(String(36), nullable=False)
+ resource.c.stack_id.alter(String(36), nullable=False)
+
+ 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(resource.c.stack_id.foreign_keys)
+ if fkeys:
+ fkey_name = fkeys[0].constraint.name
+ ForeignKeyConstraint(columns=[resource.c.stack_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)
+ event = Table('event', meta, autoload=True)
+ resource = Table('resource', meta, autoload=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).drop()
+
+ fkeys = list(resource.c.stack_id.foreign_keys)
+ if fkeys:
+ fkey_name = fkeys[0].constraint.name
+ ForeignKeyConstraint(columns=[resource.c.stack_id],
+ refcolumns=[stack.c.id],
+ name=fkey_name).drop()
+
+ stack.c.id.alter(Integer, primary_key=True,
+ default=utils.generate_uuid)
+ event.c.stack_id.alter(Integer, nullable=False)
+ resource.c.stack_id.alter(Integer, nullable=False)
+
+ 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(resource.c.stack_id.foreign_keys)
+ if fkeys:
+ fkey_name = fkeys[0].constraint.name
+ ForeignKeyConstraint(columns=[resource.c.stack_id],
+ refcolumns=[stack.c.id],
+ name=fkey_name).create()
from sqlalchemy.schema import ForeignKeyConstraint
from sqlalchemy import types as types
from json import dumps, loads
+from heat.common import utils
from heat.openstack.common import timeutils
from heat.db.sqlalchemy.session import get_session
from sqlalchemy.orm.session import Session
__tablename__ = 'stack'
- id = Column(Integer, primary_key=True)
+ id = Column(String, primary_key=True,
+ default=utils.generate_uuid)
name = Column(String)
raw_template_id = Column(Integer, ForeignKey('raw_template.id'),
nullable=False)
__tablename__ = 'event'
id = Column(Integer, primary_key=True)
- stack_id = Column(Integer, ForeignKey('stack.id'),
+ stack_id = Column(String, ForeignKey('stack.id'),
nullable=False)
stack = relationship(Stack,
backref=backref('events'))
# odd name as "metadata" is reserved
rsrc_metadata = Column('rsrc_metadata', Json)
- stack_id = Column(Integer, ForeignKey('stack.id'),
+ stack_id = Column(String, ForeignKey('stack.id'),
nullable=False)
stack = relationship(Stack, backref=backref('resources'))