Make the db migration scripts complete

The current db migration scripts cannot reflect the db model we used.
This patch adds migration scripts for service related db and
some alterations on device and device attribute tables.

(cherry picked from commit 543c1edd60)

Change-Id: I3a44c05280c4fa0b6bdb9737ec32200d641f2ac0
Closes-bug: 1518072
This commit is contained in:
gong yong sheng 2015-11-26 15:29:26 +08:00 committed by Sridhar Ramaswamy
parent 937334881d
commit 3d3360c0f0
4 changed files with 160 additions and 10 deletions

View File

@ -0,0 +1,108 @@
# Copyright 2015 OpenStack Foundation
#
# 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.
#
""" Add Service related dbs
Revision ID: 12a57080b277
Revises: 5958429bcb3c
Create Date: 2015-11-26 15:18:19.623170
"""
# revision identifiers, used by Alembic.
revision = '12a57080b277'
down_revision = '5958429bcb3c'
from alembic import op
import sqlalchemy as sa
def upgrade(active_plugins=None, options=None):
### commands auto generated by Alembic - please adjust! ###
op.create_table(
'servicetypes',
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('template_id', sa.String(length=36), nullable=False),
sa.Column('service_type', sa.String(length=255), nullable=False),
sa.ForeignKeyConstraint(['template_id'], ['devicetemplates.id'], ),
sa.PrimaryKeyConstraint('id'),
mysql_engine='InnoDB'
)
op.create_table(
'deviceservicecontexts',
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('device_id', sa.String(length=36), nullable=True),
sa.Column('network_id', sa.String(length=36), nullable=True),
sa.Column('subnet_id', sa.String(length=36), nullable=True),
sa.Column('port_id', sa.String(length=36), nullable=True),
sa.Column('router_id', sa.String(length=36), nullable=True),
sa.Column('role', sa.String(length=255), nullable=True),
sa.Column('index', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['device_id'], ['devices.id'], ),
sa.PrimaryKeyConstraint('id'),
mysql_engine='InnoDB'
)
op.create_table(
'serviceinstances',
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('name', sa.String(length=255), nullable=True),
sa.Column('service_type_id', sa.String(length=36), nullable=True),
sa.Column('service_table_id', sa.String(length=36), nullable=True),
sa.Column('managed_by_user', sa.Boolean(), nullable=True),
sa.Column('mgmt_driver', sa.String(length=255), nullable=True),
sa.Column('mgmt_url', sa.String(length=255), nullable=True),
sa.Column('status', sa.String(length=255), nullable=False),
sa.ForeignKeyConstraint(['service_type_id'], ['servicetypes.id'], ),
sa.PrimaryKeyConstraint('id'),
mysql_engine='InnoDB'
)
op.create_table(
'servicecontexts',
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('service_instance_id', sa.String(length=36), nullable=True),
sa.Column('network_id', sa.String(length=36), nullable=True),
sa.Column('subnet_id', sa.String(length=36), nullable=True),
sa.Column('port_id', sa.String(length=36), nullable=True),
sa.Column('router_id', sa.String(length=36), nullable=True),
sa.Column('role', sa.String(length=255), nullable=True),
sa.Column('index', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['service_instance_id'],
['serviceinstances.id'], ),
sa.PrimaryKeyConstraint('id'),
mysql_engine='InnoDB'
)
op.create_table(
'servicedevicebindings',
sa.Column('service_instance_id', sa.String(length=36), nullable=False),
sa.Column('device_id', sa.String(length=36), nullable=False),
sa.ForeignKeyConstraint(['device_id'], ['devices.id'], ),
sa.ForeignKeyConstraint(['service_instance_id'],
['serviceinstances.id'], ),
sa.PrimaryKeyConstraint('service_instance_id', 'device_id'),
mysql_engine='InnoDB'
)
### end Alembic commands ###
def downgrade(active_plugins=None, options=None):
### commands auto generated by Alembic - please adjust! ###
op.drop_table('servicedevicebindings')
op.drop_table('servicecontexts')
op.drop_table('serviceinstances')
op.drop_table('deviceservicecontexts')
op.drop_table('servicetypes')
### end Alembic commands ###

View File

@ -0,0 +1,51 @@
# Copyright 2015 OpenStack Foundation
#
# 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.
#
""" Alter devices
Revision ID: 12a57080b278
Revises: 12a57080b277
Create Date: 2015-11-26 15:18:19.623170
"""
# revision identifiers, used by Alembic.
revision = '12a57080b278'
down_revision = '12a57080b277'
from alembic import op
from sqlalchemy.dialects import mysql
def upgrade(active_plugins=None, options=None):
### commands auto generated by Alembic - please adjust! ###
op.alter_column(u'deviceattributes', 'device_id',
existing_type=mysql.VARCHAR(length=255),
nullable=False)
op.alter_column(u'devices', 'status',
existing_type=mysql.VARCHAR(length=255),
nullable=False)
### end Alembic commands ###
def downgrade(active_plugins=None, options=None):
### commands auto generated by Alembic - please adjust! ###
op.alter_column(u'devices', 'status',
existing_type=mysql.VARCHAR(length=255),
nullable=True)
op.alter_column(u'deviceattributes', 'device_id',
existing_type=mysql.VARCHAR(length=255),
nullable=True)
### end Alembic commands ###

View File

@ -25,15 +25,6 @@ Create Date: 2014-08-01 11:48:10.319498
revision = '4c31092895b8'
down_revision = '81ffa86020d'
# from alembic import op
def upgrade(active_plugins=None, options=None):
# op.drop_column('devicetameplates', 'service_types')
# op.drop_table('servicetypes')
# op.drop_table('deviceservicecontexts')
# op.drop_table('serviceinstances')
# op.drop_table('servicecontexts')
# op.drop_table('servicedevicebindings')
pass

View File

@ -1 +1 @@
5958429bcb3c
12a57080b278