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('deleted', Boolean())) instances.create_column(Column('deleted_at', DateTime()))
def upgrade(migrate_engine): meta = MetaData() meta.bind = migrate_engine modules = Table('modules', meta, autoload=True) is_nullable = True if migrate_engine.name == "sqlite" else False column = Column(COLUMN_NAME_1, Boolean(), nullable=is_nullable, default=0) modules.create_column(column) column = Column(COLUMN_NAME_2, Integer(), nullable=is_nullable, default=5) modules.create_column(column) column = Column(COLUMN_NAME_3, Boolean(), nullable=is_nullable, default=0) modules.create_column(column) modules.c.contents.alter(Text(length=4294967295)) # mark all non-visible, auto-apply and all-tenant modules as is_admin update(table=modules, values=dict(is_admin=1), whereclause="visible=0 or auto_apply=1 or tenant_id is null" ).execute()
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)), Column('deleted', Boolean(), nullable=False, default=False), Column('deleted_at', DateTime()), )
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( 'security_group_id', String(length=36), ForeignKey('security_groups.id', ondelete="CASCADE", onupdate="CASCADE")), Column('instance_id', String(length=36), ForeignKey('instances.id', ondelete="CASCADE", onupdate="CASCADE")), Column('created', DateTime()),
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()), UniqueConstraint('type', 'tenant_id', 'datastore_id', 'datastore_version_id', 'name', 'deleted_at', name='UQ_type_tenant_datastore_datastore_version_name'), )
meta = MetaData() clusters = Table( 'clusters', meta, Column('id', String(36), primary_key=True, nullable=False), Column('created', DateTime(), nullable=False), Column('updated', DateTime(), nullable=False), Column('name', String(255), nullable=False), Column('task_id', Integer(), nullable=False), Column('tenant_id', String(36), nullable=False), Column("datastore_version_id", String(36), ForeignKey('datastore_versions.id'), nullable=False), Column('deleted', Boolean()), Column('deleted_at', DateTime()), Index("clusters_tenant_id", "tenant_id"), Index("clusters_deleted", "deleted"), ) 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)))
from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import Table meta = MetaData() datastore_configuration_parameters = Table( 'datastore_configuration_parameters', meta, Column('id', String(36), primary_key=True, nullable=False), Column('name', String(128), primary_key=True, nullable=False), Column('datastore_version_id', String(36), ForeignKey("datastore_versions.id"), primary_key=True, nullable=False), Column('restart_required', Boolean(), nullable=False, default=False), Column('max_size', String(40)), Column('min_size', String(40)), Column('data_type', String(128), nullable=False), Column('deleted', Boolean()), Column('deleted_at', DateTime()), UniqueConstraint( 'datastore_version_id', 'name', name='UQ_datastore_configuration_parameters_datastore_version_id_name') ) def upgrade(migrate_engine): meta.bind = migrate_engine Table('datastore_versions', meta, autoload=True) create_tables([datastore_configuration_parameters])
'datastores', meta, Column('id', String(36), primary_key=True, nullable=False), Column('name', String(255), unique=True), Column('manager', String(255), nullable=False), Column('default_version_id', String(36)), ) datastore_versions = Table( 'datastore_versions', meta, Column('id', String(36), primary_key=True, nullable=False), Column('datastore_id', String(36), ForeignKey('datastores.id')), Column('name', String(255), unique=True), Column('image_id', String(36), nullable=False), Column('packages', String(511)), Column('active', Boolean(), nullable=False), UniqueConstraint('datastore_id', 'name', name='ds_versions')) 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') # Table 'service_images' is deprecated since this version. # Leave it for few releases. # drop_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 String from trove.db.sqlalchemy.migrate_repo.schema import Table meta = MetaData() capabilities = Table( 'capabilities', meta, Column('id', String(36), primary_key=True, nullable=False), Column('name', String(255), unique=True), Column('description', String(255), nullable=False), Column('enabled', Boolean())) capability_overrides = Table( 'capability_overrides', meta, Column('id', String(36), primary_key=True, nullable=False), Column('datastore_version_id', String(36), ForeignKey('datastore_versions.id')), Column('capability_id', String(36), ForeignKey('capabilities.id')), Column('enabled', Boolean()), UniqueConstraint('datastore_version_id', 'capability_id', name='idx_datastore_capabilities_enabled')) def upgrade(migrate_engine): meta.bind = migrate_engine
Column('id', String(36), primary_key=True, nullable=False), Column('name', String(255), unique=True), Column('manager', String(255), nullable=False), Column('default_version_id', String(36)), ) datastore_versions = Table( 'datastore_versions', meta, Column('id', String(36), primary_key=True, nullable=False), Column('datastore_id', String(36), ForeignKey('datastores.id')), Column('name', String(255), unique=True), Column('image_id', String(36), nullable=False), Column('packages', String(511)), Column('active', Boolean(), nullable=False), UniqueConstraint('datastore_id', 'name', name='ds_versions') ) 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') # Table 'service_images' is deprecated since this version. # Leave it for few releases. #drop_tables([service_images])
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 Float from trove.db.sqlalchemy.migrate_repo.schema import String from trove.db.sqlalchemy.migrate_repo.schema import Table meta = MetaData() backups = Table('backups', meta, Column('id', String(36), primary_key=True, nullable=False), Column('name', String(255), nullable=False), Column('description', String(512)), Column('location', String(1024)), Column('backup_type', String(32)), Column('size', Float()), Column('tenant_id', String(36)), Column('state', String(32), nullable=False), Column('instance_id', String(36)), Column('checksum', String(32)), Column('backup_timestamp', DateTime()), Column('deleted', Boolean()), Column('created', DateTime()), Column('updated', DateTime()), Column('deleted_at', DateTime())) def upgrade(migrate_engine): meta.bind = migrate_engine create_tables([ backups, ])