def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine # new table with desired columns, indexes, and constraints new_agent_heartbeats = Table( 'agent_heartbeats', meta, Column('id', String(36), primary_key=True, nullable=False), Column('instance_id', String(36), nullable=False, unique=True, index=True), Column('guest_agent_version', String(255), index=True), Column('deleted', Boolean(), index=True), Column('deleted_at', DateTime()), Column('updated_at', DateTime(), nullable=False)) # original table from migration 005_heartbeat.py previous_agent_heartbeats = Table('agent_heartbeats', meta, autoload=True) try: drop_tables([previous_agent_heartbeats]) except OperationalError as e: logger.warn("This table may have been dropped by some other means.") logger.warn(e) create_tables([new_agent_heartbeats])
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine # add column: instances = Table('instances', meta, autoload=True) instances.create_column(Column('tenant_id', String(36), nullable=True)) instances.create_column(Column('server_status', String(64)))
def upgrade(migrate_engine): meta.bind = migrate_engine Table('datastores', meta, autoload=True) Table('datastore_versions', meta, autoload=True) instances = Table('instances', meta, autoload=True) create_tables([clusters]) instances.create_column( Column('cluster_id', String(36), ForeignKey("clusters.id"))) instances.create_column(Column('shard_id', String(36))) instances.create_column(Column('type', String(64))) cluster_id_idx = Index("instances_cluster_id", instances.c.cluster_id) cluster_id_idx.create()
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine instances = Table('instances', meta, autoload=True) service_type = Column('service_type', String(36)) instances.create_column(service_type) instances.update().values({'service_type': 'mysql'}).execute()
def upgrade(migrate_engine): meta.bind = migrate_engine create_tables([configurations]) create_tables([configuration_parameters]) instances = Table('instances', meta, autoload=True) instances.create_column(Column('configuration_id', String(36), ForeignKey("configurations.id")))
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine # add column: backups = Table('backups', meta, autoload=True) backups.create_column(Column('parent_id', String(36), nullable=True))
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine instances = Table('instances', meta, autoload=True) instances.create_column(Column(COLUMN_NAME, String(36), ForeignKey('instances.id')), nullable=True)
def test_drop_foreign_key_constraints(self, mock_constraint): test_columns = [Column('col1', String(5)), Column('col2', String(5))] test_refcolumns = [Column('ref_col1', String(5)), Column('ref_col2', String(5))] test_constraint_names = ['constraint1', 'constraint2'] db_utils.drop_foreign_key_constraints(test_constraint_names, test_columns, test_refcolumns) expected = [call(columns=test_columns, refcolumns=test_refcolumns, name='constraint1'), call(columns=test_columns, refcolumns=test_refcolumns, name='constraint2')] self.assertEqual(expected, mock_constraint.call_args_list)
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine ds_version = Table('datastore_versions', meta, autoload=True) ds_version.create_column(Column('image_tags', String(255), nullable=True)) ds_version.c.image_id.alter(nullable=True)
def downgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine # int->char casts in pgsql still work fine without any USING clause, # so downgrade is not affected. # modify column: instances = Table('instances', meta, autoload=True) instances.c.flavor_id.alter(type=String(36))
def upgrade(migrate_engine): meta.bind = migrate_engine create_tables([datastores, datastore_versions]) instances = Table('instances', meta, autoload=True) datastore_version_id = Column('datastore_version_id', String(36), ForeignKey('datastore_versions.id')) instances.create_column(datastore_version_id) instances.drop_column('service_type')
def downgrade(migrate_engine): meta.bind = migrate_engine drop_tables([datastores, datastore_versions]) instances = Table('instances', meta, autoload=True) instances.drop_column('datastore_version_id') service_type = Column('service_type', String(36)) instances.create_column(service_type) instances.update().values({'service_type': 'mysql'}).execute()
def upgrade(migrate_engine): meta.bind = migrate_engine # Load 'configurations' table to MetaData. Table('configurations', meta, autoload=True, autoload_with=migrate_engine) instances = Table('clusters', meta, autoload=True) instances.create_column( Column('configuration_id', String(36), ForeignKey("configurations.id")))
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine backups = Table('backups', meta, autoload=True) Table('datastore_versions', meta, autoload=True) datastore_version_id = Column('datastore_version_id', String(36), ForeignKey('datastore_versions.id')) backups.create_column(datastore_version_id)
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine # add column: instances = Table('instances', meta, autoload=True) volume_size = Column('volume_size', Integer()) flavor_id = Column('flavor_id', String(36)) instances.create_column(flavor_id) instances.create_column(volume_size)
def upgrade(migrate_engine): meta.bind = migrate_engine Table('datastores', meta, autoload=True) Table('datastore_versions', meta, autoload=True) instances = Table('instances', meta, autoload=True) # since the downgrade is a no-op, an upgrade after a downgrade will # cause an exception because the tables already exist # we will catch that case and log an info message try: create_tables([clusters]) instances.create_column( Column('cluster_id', String(36), ForeignKey("clusters.id"))) instances.create_column(Column('shard_id', String(36))) instances.create_column(Column('type', String(64))) cluster_id_idx = Index("instances_cluster_id", instances.c.cluster_id) cluster_id_idx.create() except OperationalError as e: logger.info(e)
def downgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine datastores = Table('datastores', meta, autoload=True) datastore_versions = Table('datastore_versions', meta, autoload=True) # drop column from datastore_versions datastore_versions.drop_column('manager') # add column to datastores manager = Column('manager', String(255)) datastores.create_column(manager)
def upgrade(migrate_engine): meta.bind = migrate_engine # since the downgrade is a no-op, an upgrade after a downgrade will # cause an exception because the tables already exist # we will catch that case and log an info message try: create_tables([configurations]) create_tables([configuration_parameters]) instances = Table('instances', meta, autoload=True) instances.create_column( Column('configuration_id', String(36), ForeignKey("configurations.id"))) except OperationalError as e: logger.info(e)
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine ds_table = Table('datastores', meta, autoload=True) ds_version_table = Table('datastore_versions', meta, autoload=True) ds_version_table.create_column( Column('version', String(255), nullable=True)) ds_versions = select(columns=[text("id"), text("name")], from_obj=ds_version_table).execute() # Use 'name' value as init 'version' value for version in ds_versions: update(table=ds_version_table, whereclause=text("id='%s'" % version.id), values=dict(version=version.name)).execute() # Change unique constraint, need to drop the foreign key first and add back # later constraint_names = db_utils.get_foreign_key_constraint_names( engine=migrate_engine, table='datastore_versions', columns=['datastore_id'], ref_table='datastores', ref_columns=['id']) db_utils.drop_foreign_key_constraints( constraint_names=constraint_names, columns=[ds_version_table.c.datastore_id], ref_columns=[ds_table.c.id]) UniqueConstraint('datastore_id', 'name', name='ds_versions', table=ds_version_table).drop() UniqueConstraint('datastore_id', 'name', 'version', name='ds_versions', table=ds_version_table).create() db_utils.create_foreign_key_constraints( constraint_names=constraint_names, columns=[ds_version_table.c.datastore_id], ref_columns=[ds_table.c.id])
def downgrade(migrate_engine): meta.bind = migrate_engine instances = Table('instances', meta, autoload=True) constraint_names = db_utils.get_foreign_key_constraint_names( engine=migrate_engine, table='instances', columns=['datastore_version_id'], ref_table='datastore_versions', ref_columns=['id']) db_utils.drop_foreign_key_constraints( constraint_names=constraint_names, columns=[instances.c.datastore_version_id], ref_columns=[datastore_versions.c.id]) instances.drop_column('datastore_version_id') service_type = Column('service_type', String(36)) instances.create_column(service_type) instances.update().values({'service_type': 'mysql'}).execute() drop_tables([datastore_versions, datastores])
# 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.schema import Column from sqlalchemy.schema import MetaData from trove.db.sqlalchemy.migrate_repo.schema import create_tables from trove.db.sqlalchemy.migrate_repo.schema import DateTime from trove.db.sqlalchemy.migrate_repo.schema import drop_tables from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import Table meta = MetaData() agent_heartbeats = Table( 'agent_heartbeats', meta, Column('id', String(36), primary_key=True, nullable=False), Column('instance_id', String(36), nullable=False), Column('updated_at', DateTime())) def upgrade(migrate_engine): meta.bind = migrate_engine create_tables([agent_heartbeats]) def downgrade(migrate_engine): meta.bind = migrate_engine drop_tables([agent_heartbeats])
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine instances = Table('instances', meta, autoload=True) instances.c.task_description.alter(type=String(255))
from trove.db.sqlalchemy.migrate_repo.schema import Boolean from trove.db.sqlalchemy.migrate_repo.schema import create_tables from trove.db.sqlalchemy.migrate_repo.schema import DateTime from trove.db.sqlalchemy.migrate_repo.schema import drop_tables from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import Table from trove.db.sqlalchemy import utils as db_utils meta = MetaData() configurations = Table( 'configurations', meta, Column('id', String(36), primary_key=True, nullable=False), Column('name', String(64), nullable=False), Column('description', String(256)), Column('tenant_id', String(36), nullable=False), Column('datastore_version_id', String(36), nullable=False), Column('deleted', Boolean(), nullable=False, default=False), Column('deleted_at', DateTime()), ) configuration_parameters = Table( 'configuration_parameters', meta, Column('configuration_id', String(36), ForeignKey("configurations.id"), nullable=False, primary_key=True), Column('configuration_key', String(128), nullable=False, primary_key=True), Column('configuration_value', String(128)),
# 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.schema import Column from sqlalchemy.schema import MetaData from trove.db.sqlalchemy.migrate_repo.schema import create_tables from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import Table meta = MetaData() service_images = Table( 'service_images', meta, Column('id', String(36), primary_key=True, nullable=False), Column('service_name', String(255)), Column('image_id', String(255))) def upgrade(migrate_engine): meta.bind = migrate_engine create_tables([service_images])
from sqlalchemy.schema import MetaData from sqlalchemy.schema import UniqueConstraint from trove.db.sqlalchemy.migrate_repo.schema import Boolean from trove.db.sqlalchemy.migrate_repo.schema import create_tables from trove.db.sqlalchemy.migrate_repo.schema import DateTime from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import Table from trove.db.sqlalchemy.migrate_repo.schema import Text meta = MetaData() modules = Table( 'modules', meta, Column('id', String(length=64), primary_key=True, nullable=False), Column('name', String(length=255), nullable=False), Column('type', String(length=255), nullable=False), Column('contents', Text(length=16777215), nullable=False), Column('description', String(length=255)), Column('tenant_id', String(length=64), nullable=True), Column('datastore_id', String(length=64), nullable=True), Column('datastore_version_id', String(length=64), nullable=True), Column('auto_apply', Boolean(), default=0, nullable=False), Column('visible', Boolean(), default=1, nullable=False), Column('live_update', Boolean(), default=0, nullable=False), Column('md5', String(length=32), nullable=False), Column('created', DateTime(), nullable=False), Column('updated', DateTime(), nullable=False), Column('deleted', Boolean(), default=0, nullable=False), Column('deleted_at', DateTime()),
def upgrade(migrate_engine): meta.bind = migrate_engine instances = Table('instances', meta, autoload=True) instances.c.flavor_id.alter(String(255))
# under the License. from sqlalchemy.schema import Column from sqlalchemy.schema import MetaData from trove.db.sqlalchemy.migrate_repo.schema import create_tables from trove.db.sqlalchemy.migrate_repo.schema import DateTime from trove.db.sqlalchemy.migrate_repo.schema import drop_tables from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import Table meta = MetaData() root_enabled_history = Table( 'root_enabled_history', meta, Column('id', String(36), primary_key=True, nullable=False), Column('user', String(length=255)), Column('created', DateTime()), ) def upgrade(migrate_engine): meta.bind = migrate_engine create_tables([root_enabled_history]) def downgrade(migrate_engine): meta.bind = migrate_engine drop_tables([root_enabled_history])
# # 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.schema import Column from sqlalchemy.schema import MetaData from trove.db.sqlalchemy.migrate_repo.schema import Table from trove.db.sqlalchemy.migrate_repo.schema import create_tables from trove.db.sqlalchemy.migrate_repo.schema import drop_tables from trove.db.sqlalchemy.migrate_repo.schema import String meta = MetaData() dns_records = Table('dns_records', meta, Column('name', String(length=255), primary_key=True), Column('record_id', String(length=64))) def upgrade(migrate_engine): meta.bind = migrate_engine create_tables([dns_records]) def downgrade(migrate_engine): meta.bind = migrate_engine drop_tables([dns_records])
from sqlalchemy.schema import Column from sqlalchemy.schema import MetaData from trove.db.sqlalchemy.migrate_repo.schema import create_tables from trove.db.sqlalchemy.migrate_repo.schema import DateTime from trove.db.sqlalchemy.migrate_repo.schema import drop_tables from trove.db.sqlalchemy.migrate_repo.schema import Integer from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import Table meta = MetaData() service_statuses = Table( 'service_statuses', meta, Column('id', String(36), primary_key=True, nullable=False), Column('instance_id', String(36), nullable=False), Column('status_id', Integer(), nullable=False), Column('status_description', String(64), nullable=False), Column('updated_at', DateTime())) def upgrade(migrate_engine): meta.bind = migrate_engine create_tables([service_statuses]) def downgrade(migrate_engine): meta.bind = migrate_engine drop_tables([service_statuses])
from sqlalchemy.schema import MetaData from trove.db.sqlalchemy.migrate_repo.schema import create_tables from trove.db.sqlalchemy.migrate_repo.schema import drop_tables from trove.db.sqlalchemy.migrate_repo.schema import Boolean from trove.db.sqlalchemy.migrate_repo.schema import Integer from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import DateTime from trove.db.sqlalchemy.migrate_repo.schema import Table meta = MetaData() security_groups = Table( 'security_groups', meta, Column('id', String(length=36), primary_key=True, nullable=False), Column('name', String(length=255)), Column('description', String(length=255)), Column('user', String(length=255)), Column('tenant_id', String(length=255)), Column('created', DateTime()), Column('updated', DateTime()), Column('deleted', Boolean(), default=0), Column('deleted_at', DateTime()), ) security_group_instance_associations = Table( 'security_group_instance_associations', meta, Column('id', String(length=36), primary_key=True, nullable=False), Column(