backend/migrations/versions/46b528bd81dc_initial_migration.py (134 lines of code) (raw):

# Copyright 2022 Google LLC # # 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. """Initial migration. Revision ID: 46b528bd81dc Revises: Create Date: 2022-01-05 19:10:43.908299 """ from alembic import op import sqlalchemy as sa import sqlalchemy_utils from bms_app.models import OperationType, OperationStatus, SourceDBType # revision identifiers, used by Alembic. revision = '46b528bd81dc' down_revision = None branch_labels = None depends_on = None def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.create_table('bms_servers', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(), nullable=True), sa.Column('create_time', sa.DateTime(), nullable=True), sa.Column('state', sa.String(), nullable=True), sa.Column('machine_type', sa.String(), nullable=True), sa.Column('luns', sa.JSON(), nullable=True), sa.Column('networks', sa.JSON(), nullable=True), sa.Column('deleted', sa.Boolean(), nullable=True), sa.Column('secret_name', sa.String(), nullable=True), sa.Column('cpu', sa.String(), nullable=True), sa.Column('socket', sa.String(), nullable=True), sa.Column('ram', sa.String(), nullable=True), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('name') ) op.create_table('projects', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(), nullable=False), sa.Column('vpc', sa.String(), nullable=False), sa.Column('subnet', sa.String(), nullable=False), sa.Column('service_account', sa.String(), nullable=False), sa.Column('description', sa.String(), nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_table('db_assessments', sa.Column('id', sa.Integer(), nullable=False), sa.Column('project_id', sa.Integer(), nullable=True), sa.Column('path', sa.String(), nullable=False), sa.Column('uploaded_at', sa.DateTime(), nullable=True), sa.ForeignKeyConstraint(['project_id'], ['projects.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('waves', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(), nullable=True), sa.Column('project_id', sa.Integer(), nullable=False), sa.Column('is_running', sa.Boolean(), nullable=True), sa.Column('description', sa.String(), nullable=True), sa.ForeignKeyConstraint(['project_id'], ['projects.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('operations', sa.Column('id', sa.Integer(), nullable=False), sa.Column('wave_id', sa.Integer(), nullable=True), sa.Column('operation_type', sqlalchemy_utils.types.choice.ChoiceType(OperationType, impl=sa.String(20)), nullable=True), sa.Column('status', sqlalchemy_utils.types.choice.ChoiceType(OperationStatus, impl=sa.String(20)), nullable=True), sa.Column('started_at', sa.DateTime(), nullable=True), sa.Column('completed_at', sa.DateTime(), nullable=True), sa.ForeignKeyConstraint(['wave_id'], ['waves.id'], ), sa.PrimaryKeyConstraint('id') ) op.create_table('source_dbs', sa.Column('id', sa.Integer(), nullable=False), sa.Column('server', sa.String(), nullable=False), sa.Column('oracle_version', sa.String(), nullable=False), sa.Column('oracle_edition', sa.String(), nullable=True), sa.Column('db_type', sqlalchemy_utils.types.choice.ChoiceType(SourceDBType, impl=sa.String(10)), nullable=True), sa.Column('rac_nodes', sa.Integer(), nullable=True), sa.Column('fe_rac_nodes', sa.Integer(), nullable=True), sa.Column('arch', sa.String(), nullable=False), sa.Column('cores', sa.Integer(), nullable=False), sa.Column('ram', sa.Integer(), nullable=False), sa.Column('allocated_memory', sa.Integer(), nullable=False), sa.Column('db_name', sa.String(), nullable=False), sa.Column('db_size', sa.Numeric(), nullable=False), sa.Column('status', sa.String(), nullable=True), sa.Column('project_id', sa.Integer(), nullable=False), sa.Column('wave_id', sa.Integer(), nullable=True), sa.ForeignKeyConstraint(['project_id'], ['projects.id'], ), sa.ForeignKeyConstraint(['wave_id'], ['waves.id'], ), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('server', 'db_name') ) op.create_table('configs', sa.Column('id', sa.Integer(), nullable=False), sa.Column('db_id', sa.Integer(), nullable=False), sa.Column('install_config_values', sa.JSON(), nullable=True), sa.Column('db_params_values', sa.JSON(), nullable=True), sa.Column('data_mounts_values', sa.JSON(), nullable=True), sa.Column('asm_config_values', sa.JSON(), nullable=True), sa.Column('rac_config_values', sa.JSON(), nullable=True), sa.Column('misc_config_values', sa.JSON(), nullable=True), sa.Column('created_at', sa.DateTime(), nullable=True), sa.ForeignKeyConstraint(['db_id'], ['source_dbs.id'], ), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('db_id') ) op.create_table('mappings', sa.Column('id', sa.Integer(), nullable=False), sa.Column('db_id', sa.Integer(), nullable=False), sa.Column('bms_id', sa.Integer(), nullable=False), sa.Column('rac_node', sa.Integer(), nullable=True), sa.Column('is_deployable', sa.Boolean(), server_default='1', nullable=True), sa.ForeignKeyConstraint(['bms_id'], ['bms_servers.id'], ), sa.ForeignKeyConstraint(['db_id'], ['source_dbs.id'], ), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('db_id', 'bms_id') ) op.create_table('operation_history', sa.Column('id', sa.Integer(), nullable=False), sa.Column('mapping_id', sa.Integer(), nullable=False), sa.Column('wave_id', sa.Integer(), nullable=False), sa.Column('operation_id', sa.Integer(), nullable=False), sa.Column('operation_type', sqlalchemy_utils.types.choice.ChoiceType(OperationType, impl=sa.String(20)), nullable=True), sa.Column('step', sa.String(length=20), nullable=True), sa.Column('step_upd_at', sa.DateTime(), nullable=True), sa.Column('status', sqlalchemy_utils.types.choice.ChoiceType(OperationStatus, impl=sa.String(20)), nullable=True), sa.Column('started_at', sa.DateTime(), nullable=True), sa.Column('completed_at', sa.DateTime(), nullable=True), sa.ForeignKeyConstraint(['mapping_id'], ['mappings.id'], ), sa.ForeignKeyConstraint(['operation_id'], ['operations.id'], ), sa.ForeignKeyConstraint(['wave_id'], ['waves.id'], ), sa.PrimaryKeyConstraint('id') ) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_table('operation_history') op.drop_table('mappings') op.drop_table('configs') op.drop_table('source_dbs') op.drop_table('operations') op.drop_table('waves') op.drop_table('db_assessments') op.drop_table('projects') op.drop_table('bms_servers') # ### end Alembic commands ###