diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-03-12 18:29:13 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-03-12 18:29:13 +0000 |
commit | f2b1d4b433606580c3eed9df9942112fa8440291 (patch) | |
tree | db402dbe4aad6933a20059fd7f9854bc82a29d94 | |
parent | e9bd11fd552ee6757e1268cd6c93ae576f85ff5d (diff) | |
parent | 45bd459318b9d60214bf6db28d2cbb4b62676518 (diff) | |
download | heat-f2b1d4b433606580c3eed9df9942112fa8440291.tar.gz |
Merge "Squash Grizzly database migrations"
17 files changed, 141 insertions, 675 deletions
diff --git a/heat/db/migration.py b/heat/db/migration.py index fb4402217..73c9cfd9d 100644 --- a/heat/db/migration.py +++ b/heat/db/migration.py @@ -20,7 +20,7 @@ from heat.db import utils IMPL = utils.LazyPluggable('db_backend', sqlalchemy='heat.db.sqlalchemy.migration') -INIT_VERSION = 0 +INIT_VERSION = 14 def db_sync(version=None): diff --git a/heat/db/sqlalchemy/migrate_repo/versions/001_norwhal.py b/heat/db/sqlalchemy/migrate_repo/versions/001_norwhal.py deleted file mode 100644 index 84d901c5f..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/001_norwhal.py +++ /dev/null @@ -1,107 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - rawtemplate = Table( - 'raw_template', meta, - Column('id', Integer, primary_key=True), - Column('created_at', DateTime(timezone=False)), - Column('updated_at', DateTime(timezone=False)), - Column('template', Text()), - ) - - stack = Table( - 'stack', meta, - Column('id', Integer, primary_key=True), - Column('created_at', DateTime(timezone=False)), - Column('updated_at', DateTime(timezone=False)), - Column('name', String( - length=255, - convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('raw_template_id', Integer, ForeignKey("raw_template.id"), - nullable=False), - ) - - event = Table( - 'event', meta, - Column('id', Integer, primary_key=True), - Column('stack_id', Integer, ForeignKey("stack.id"), nullable=False), - Column('created_at', DateTime(timezone=False)), - Column('updated_at', DateTime(timezone=False)), - Column('name', String( - length=255, - convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - ) - - resource = Table( - 'resource', meta, - Column('id', Integer, primary_key=True), - Column('nova_instance', String( - length=255, - convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('name', String( - length=255, - convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('created_at', DateTime(timezone=False)), - Column('updated_at', DateTime(timezone=False)), - Column('state', String( - length=255, - convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('state_description', String(length=255, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('parsed_template_id', Integer, ForeignKey("parsed_template.id"), - nullable=True), - Column('stack_id', Integer, ForeignKey("stack.id"), nullable=False), - Column('depends_on', Integer), - ) - - parsedtemplate = Table( - 'parsed_template', meta, - Column('id', Integer, primary_key=True), - Column('raw_template_id', Integer, ForeignKey("raw_template.id"), - nullable=False), - Column('template', Text()), - ) - - tables = [rawtemplate, stack, event, parsedtemplate, resource] - for table in tables: - try: - table.create() - except Exception: - meta.drop_all(tables=tables) - raise - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - rawtemplate = Table('raw_template', meta, autoload=True) - event = Table('event', meta, autoload=True) - resource = Table('resource', meta, autoload=True) - parsedtemplate = Table('parsed_template', meta, autoload=True) - stack = Table('stack', meta, autoload=True) - - for table in (event, stack, resource, parsedtemplate, rawtemplate): - table.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py b/heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py deleted file mode 100644 index a0d06475f..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py +++ /dev/null @@ -1,24 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - event = Table('event', meta, autoload=True) - - Column('logical_resource_id', String(255)).create(event) - Column('physical_resource_id', String(255)).create(event) - Column('resource_status_reason', String(255)).create(event) - Column('resource_type', String(255)).create(event) - Column('resource_properties', PickleType).create(event) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - event = Table('event', meta, autoload=True) - - event.c.logical_resource_id.drop() - event.c.physical_resource_id.drop() - event.c.resource_status_reason.drop() - event.c.resource_type.drop() - event.c.resource_properties.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/003_add_missing_cols.py b/heat/db/sqlalchemy/migrate_repo/versions/003_add_missing_cols.py deleted file mode 100644 index a62af7e95..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/003_add_missing_cols.py +++ /dev/null @@ -1,18 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - parsed_template = Table('parsed_template', meta, autoload=True) - - Column('created_at', DateTime(timezone=False)).create(parsed_template) - Column('updated_at', DateTime(timezone=False)).create(parsed_template) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - parsed_template = Table('parsed_template', meta, autoload=True) - - parsed_template.c.created_at.drop() - parsed_template.c.updated_at.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/004_guest_watch.py b/heat/db/sqlalchemy/migrate_repo/versions/004_guest_watch.py deleted file mode 100644 index ed9361219..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/004_guest_watch.py +++ /dev/null @@ -1,59 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - watch_rule = Table( - 'watch_rule', meta, - Column('id', Integer, primary_key=True), - Column('created_at', DateTime(timezone=False)), - Column('updated_at', DateTime(timezone=False)), - Column('stack_name', String(length=255, - convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('name', String(length=255, convert_unicode=False, - assert_unicode=None, - unicode_error=None, _warn_on_bytestring=False)), - Column('state', String(length=255, convert_unicode=False, - assert_unicode=None, - unicode_error=None, _warn_on_bytestring=False)), - Column('rule', Text()), - Column('last_evaluated', DateTime(timezone=False)), - ) - - try: - watch_rule.create() - except Exception: - meta.drop_all(tables=tables) - raise - - watch_data = Table( - 'watch_data', meta, - Column('id', Integer, primary_key=True), - Column('created_at', DateTime(timezone=False)), - Column('updated_at', DateTime(timezone=False)), - Column('data', Text()), - Column('watch_rule_id', Integer, ForeignKey("watch_rule.id"), - nullable=False), - ) - - try: - watch_data.create() - except Exception: - meta.drop_all(tables=tables) - raise - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - watch_rule = Table('watch_rule', meta, autoload=True) - watch_rule.drop() - watch_data = Table('watch_data', meta, autoload=True) - watch_data.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/005_user_creds.py b/heat/db/sqlalchemy/migrate_repo/versions/005_user_creds.py deleted file mode 100644 index 705862edf..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/005_user_creds.py +++ /dev/null @@ -1,79 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - user_creds = Table( - 'user_creds', meta, - Column('id', Integer, primary_key=True), - Column('created_at', DateTime(timezone=False)), - Column('updated_at', DateTime(timezone=False)), - Column('username', String(length=255, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('password', String(length=255, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('service_user', String(length=255, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('service_password', String(length=255, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('tenant', String(length=1024, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('auth_url', Text()), - Column('aws_auth_url', Text()), - Column('tenant_id', String(length=256, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)), - Column('aws_creds', Text()) - ) - - user_creds.create() - - stack = Table('stack', meta, autoload=True) - - try: - Column('user_creds_id', Integer, ForeignKey("user_creds.id"), - nullable=False).create(stack) - except sqlalchemy.exc.IntegrityError: - stack.c.user_creds_id.drop() - user_creds.drop() - raise - - Column('username', String(length=256, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)).create(stack) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - - stack = Table('stack', meta, autoload=True) - user_creds = Table('user_creds', meta, autoload=True) - - stack.c.username.drop() - - def fk_name(table, ref_column): - for fk in table.foreign_keys: - if fk.column == ref_column: - return fk.name - - fkc = ForeignKeyConstraint([stack.c.user_creds_id], [user_creds.c.id], - name=fk_name(stack, user_creds.c.id)) - fkc.drop() - - stack.c.user_creds_id.drop() - user_creds.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/006_nested_stacks.py b/heat/db/sqlalchemy/migrate_repo/versions/006_nested_stacks.py deleted file mode 100644 index 1dd989a6b..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/006_nested_stacks.py +++ /dev/null @@ -1,23 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - # This was unused - resource = Table('resource', meta, autoload=True) - resource.c.depends_on.drop() - - stack = Table('stack', meta, autoload=True) - Column('owner_id', Integer, nullable=True).create(stack) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - resource = Table('resource', meta, autoload=True) - Column('depends_on', Integer).create(resource) - - stack = Table('stack', meta, autoload=True) - stack.c.owner_id.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/007_resource_work.py b/heat/db/sqlalchemy/migrate_repo/versions/007_resource_work.py deleted file mode 100644 index 02bf553c0..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/007_resource_work.py +++ /dev/null @@ -1,32 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - resource = Table('resource', meta, autoload=True) - Column('rsrc_metadata', Text()).create(resource) - - stack = Table('stack', meta, autoload=True) - Column('status', String(length=255, - convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)).create(stack) - Column('status_reason', String(length=255, - convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)).create(stack) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - resource = Table('resource', meta, autoload=True) - resource.c.rsrc_metadata.drop() - - stack = Table('stack', meta, autoload=True) - stack.c.status.drop() - stack.c.status_reason.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/008_user_parameters.py b/heat/db/sqlalchemy/migrate_repo/versions/008_user_parameters.py deleted file mode 100644 index 6511b1412..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/008_user_parameters.py +++ /dev/null @@ -1,16 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - stack = Table('stack', meta, autoload=True) - Column('parameters', Text()).create(stack) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - stack = Table('stack', meta, autoload=True) - stack.c.parameters.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/009_remove_parsed_template.py b/heat/db/sqlalchemy/migrate_repo/versions/009_remove_parsed_template.py deleted file mode 100644 index 8b485460b..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/009_remove_parsed_template.py +++ /dev/null @@ -1,49 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - def fk_name(table, ref_column): - for fk in table.foreign_keys: - if fk.column == ref_column: - return fk.name - - resource = Table('resource', meta, autoload=True) - parsed_template = Table('parsed_template', meta, autoload=True) - - res_kc = ForeignKeyConstraint([resource.c.parsed_template_id], - [parsed_template.c.id], - name=fk_name(resource, - parsed_template.c.id)) - try: - res_kc.drop() - except NotSupportedError: - # SQLite (used in unit tests) cannot drop a Foreign Key constraint - pass - - resource.c.parsed_template_id.drop() - - parsed_template.drop() - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - raw_template = Table('raw_template', meta, autoload=True) - - parsed_template = Table( - 'parsed_template', meta, - Column('id', Integer, primary_key=True), - Column('created_at', DateTime(timezone=False)), - Column('updated_at', DateTime(timezone=False)), - Column('raw_template_id', Integer, ForeignKey("raw_template.id"), - nullable=False), - Column('template', Text()) - ) - parsed_template.create() - - resource = Table('resource', meta, autoload=True) - Column('parsed_template_id', Integer, ForeignKey('parsed_template.id'), - nullable=True).create(resource) diff --git a/heat/db/sqlalchemy/migrate_repo/versions/010_add_stack_timeout_col.py b/heat/db/sqlalchemy/migrate_repo/versions/010_add_stack_timeout_col.py deleted file mode 100644 index 49b97ff43..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/010_add_stack_timeout_col.py +++ /dev/null @@ -1,25 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - stack = Table('stack', meta, autoload=True) - - # Note hard-coded default 60 (minutes) here from the value in the - # engine, means we can upgrade and populate existing rows - try: - col = Column('timeout', Integer, nullable=False, default=60) - col.create(stack, populate_default=True) - except Exception as ex: - print "Caught exception adding timeout column to stacks %s" % ex - # *Hack-alert* Sqlite in the unit tests can't handle the above - # approach to nullable=False, so retry with nullable=True - Column('timeout', Integer, nullable=True, default=60).create(stack) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - stack = Table('stack', meta, autoload=True) - - stack.c.timeout.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/011_stack_tenant.py b/heat/db/sqlalchemy/migrate_repo/versions/011_stack_tenant.py deleted file mode 100644 index 70721c4bd..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/011_stack_tenant.py +++ /dev/null @@ -1,20 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - stack = Table('stack', meta, autoload=True) - - Column('tenant', String(length=256, convert_unicode=False, - assert_unicode=None, - unicode_error=None, - _warn_on_bytestring=False)).create(stack) - - -def downgrade(migrate_engine): - meta = MetaData() - meta.bind = migrate_engine - stack = Table('stack', meta, autoload=True) - stack.c.tenant.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/012_stack_id_uuid.py b/heat/db/sqlalchemy/migrate_repo/versions/012_stack_id_uuid.py deleted file mode 100644 index b2127f781..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/012_stack_id_uuid.py +++ /dev/null @@ -1,104 +0,0 @@ -from sqlalchemy import * -from migrate import * -from heat.openstack.common import uuidutils - - -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=uuidutils.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() 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 deleted file mode 100644 index e0825c4cf..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/013_owner_id_uuid.py +++ /dev/null @@ -1,67 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -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() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/014_watch_stackid.py b/heat/db/sqlalchemy/migrate_repo/versions/014_watch_stackid.py deleted file mode 100644 index 707928d6d..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/014_watch_stackid.py +++ /dev/null @@ -1,25 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - stack = Table('stack', meta, autoload=True) - watch_rule = Table('watch_rule', meta, autoload=True) - - Column('stack_id', String(length=36), ForeignKey("stack.id"), - nullable=False).create(watch_rule) - - watch_rule.c.stack_name.drop() - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - - watch_rule = Table('watch_rule', meta, autoload=True) - - watch_rule.c.stack_id.drop() - Column('stack_name', String(length=255), convert_unicode=False, - assert_unicode=None, unicode_error=None, - _warn_on_bytestring=False).create(watch_rule) diff --git a/heat/db/sqlalchemy/migrate_repo/versions/015_add_stack_rollback_col.py b/heat/db/sqlalchemy/migrate_repo/versions/015_add_stack_rollback_col.py deleted file mode 100644 index 2856fef61..000000000 --- a/heat/db/sqlalchemy/migrate_repo/versions/015_add_stack_rollback_col.py +++ /dev/null @@ -1,26 +0,0 @@ -from sqlalchemy import * -from migrate import * - - -def upgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - stack = Table('stack', meta, autoload=True) - - # Note hard-coded default 60 (minutes) here from the value in the - # engine, means we can upgrade and populate existing rows - try: - col = Column('disable_rollback', Boolean, nullable=False, default=True) - col.create(stack, populate_default=True) - except Exception as ex: - print "Caught exception adding disable_rollback column %s" % ex - # *Hack-alert* Sqlite in the unit tests can't handle the above - # approach to nullable=False, so retry with nullable=True - Column('disable_rollback', Boolean, nullable=True, - default=60).create(stack) - - -def downgrade(migrate_engine): - meta = MetaData(bind=migrate_engine) - stack = Table('stack', meta, autoload=True) - - stack.c.disable_rollback.drop() diff --git a/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py b/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py new file mode 100644 index 000000000..066f6893e --- /dev/null +++ b/heat/db/sqlalchemy/migrate_repo/versions/015_grizzly.py @@ -0,0 +1,140 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from sqlalchemy import * +from migrate import * + + +def upgrade(migrate_engine): + meta = MetaData() + meta.bind = migrate_engine + + raw_template = Table( + 'raw_template', meta, + Column('id', Integer, primary_key=True, nullable=False), + Column('created_at', DateTime), + Column('updated_at', DateTime), + Column('template', Text), + ) + + user_creds = Table( + 'user_creds', meta, + Column('id', Integer, primary_key=True, nullable=False), + Column('created_at', DateTime), + Column('updated_at', DateTime), + Column('username', String(255)), + Column('password', String(255)), + Column('service_user', String(255)), + Column('service_password', String(255)), + Column('tenant', String(1024)), + Column('auth_url', Text), + Column('aws_auth_url', Text), + Column('tenant_id', String(256)), + Column('aws_creds', Text), + ) + + stack = Table( + 'stack', meta, + Column('id', String(36), primary_key=True, nullable=False), + Column('created_at', DateTime), + Column('updated_at', DateTime), + Column('name', String(255)), + Column('raw_template_id', Integer, ForeignKey('raw_template.id'), + nullable=False), + Column('user_creds_id', Integer, ForeignKey('user_creds.id'), + nullable=False), + Column('username', String(256)), + Column('owner_id', String(36)), + Column('status', String(255)), + Column('status_reason', String(255)), + Column('parameters', Text), + Column('timeout', Integer, nullable=False), + Column('tenant', String(256)), + Column('disable_rollback', Boolean, nullable=False), + ) + + resource = Table( + 'resource', meta, + Column('id', Integer, primary_key=True, nullable=False), + Column('nova_instance', String(255)), + Column('name', String(255)), + Column('created_at', DateTime), + Column('updated_at', DateTime), + Column('state', String(255)), + Column('state_description', String(255)), + Column('stack_id', String(36), ForeignKey('stack.id'), + nullable=False), + Column('rsrc_metadata', Text), + ) + + event = Table( + 'event', meta, + Column('id', Integer, primary_key=True, nullable=False), + Column('stack_id', String(36), ForeignKey('stack.id'), + nullable=False), + Column('created_at', DateTime), + Column('updated_at', DateTime), + Column('name', String(255)), + Column('logical_resource_id', String(255)), + Column('physical_resource_id', String(255)), + Column('resource_status_reason', String(255)), + Column('resource_type', String(255)), + Column('resource_properties', PickleType), + ) + + watch_rule = Table( + 'watch_rule', meta, + Column('id', Integer, primary_key=True, nullable=False), + Column('created_at', DateTime), + Column('updated_at', DateTime), + Column('name', String(255)), + Column('state', String(255)), + Column('rule', Text), + Column('last_evaluated', DateTime), + Column('stack_id', String(36), ForeignKey('stack.id'), + nullable=False), + ) + + watch_data = Table( + 'watch_data', meta, + Column('id', Integer, primary_key=True, nullable=False), + Column('created_at', DateTime), + Column('updated_at', DateTime), + Column('data', Text), + Column('watch_rule_id', Integer, ForeignKey('watch_rule.id'), + nullable=False), + ) + + tables = ( + raw_template, + user_creds, + stack, + resource, + event, + watch_rule, + watch_data, + ) + + for index, table in enumerate(tables): + try: + table.create() + except: + # If an error occurs, drop all tables created so far to return + # to the previously existing state. + meta.drop_all(tables=tables[:index]) + raise + + +def downgrade(migrate_engine): + raise Exception('Database downgrade not supported - would drop all tables') |