Added DB migrations fixup script

The backporting of DB migrations requires additional work
to ensure that DB schema is correct between the various
upgrade paths.

Change-Id: I07f403a6d145ae9d591f18c6bdf1ae4dbb27d594
This commit is contained in:
Thomas Bachman 2017-09-18 21:35:53 +00:00
parent e6032e5881
commit c2a04c0444
3 changed files with 89 additions and 2 deletions

View File

@ -20,7 +20,7 @@ Create Date: 2015-10-19 02:08:54.252877
# revision identifiers, used by Alembic.
revision = '4c0c1e2c0160'
down_revision = None
down_revision = '27b724002081'
from alembic import op
import sqlalchemy as sa

View File

@ -1 +1 @@
4c0c1e2c0160
d978a7a73785

View File

@ -0,0 +1,87 @@
# Copyright 2017 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.
#
"""fix migrations
Revision ID: d978a7a73785
Revises: 4c0c1e2c0160
Create Date: 2017-09-18 17:34:18.856803
"""
# revision identifiers, used by Alembic.
revision = 'd978a7a73785'
down_revision = '4c0c1e2c0160'
import os
import sys
from neutron.db import migration
from oslo_utils import importutils
from gbpservice.neutron.db.migration import alembic_migrations as am
# This is a hack to get around the fact that the versions
# directory has no __init__.py
filepath = os.path.abspath(am.__file__)
basepath = filepath[:filepath.rfind("/")] + "/versions"
sys.path.append(basepath)
DB_5239b0a50036 = '5239b0a50036_rename_tenant_to_project'
DB_bff1774e749e = 'bff1774e749e_ncp_sci_nf_status'
DB_c460c5682e74 = 'c460c5682e74_nfp_rename_tenant_to_project'
DB_da6a25bbcfa8 = 'da6a25bbcfa8_initial_qos_via_nsp'
def upgrade():
ensure_5239b0a50036_migration()
ensure_c460c5682e74_migration()
ensure_da6a25bbcfa8_migration()
ensure_bff1774e749e_migration()
# remove the appended path
del sys.path[sys.path.index(basepath)]
def ensure_5239b0a50036_migration():
if not migration.schema_has_column('gp_l2_policies',
'project_id'):
db_5239b0a50036 = importutils.import_module(DB_5239b0a50036)
db_5239b0a50036.upgrade()
def ensure_bff1774e749e_migration():
if not migration.schema_has_column(
'ncp_node_instance_network_function_mappings',
'status_details'):
db_bff1774e749e = importutils.import_module(DB_bff1774e749e)
db_bff1774e749e.upgrade()
def ensure_c460c5682e74_migration():
if not migration.schema_has_column('nfp_port_infos',
'project_id'):
db_c460c5682e74 = importutils.import_module(DB_c460c5682e74)
db_c460c5682e74.upgrade()
def ensure_da6a25bbcfa8_migration():
if not migration.schema_has_table('gpm_qos_policy_mappings'):
db_da6a25bbcfa8 = importutils.import_module(DB_da6a25bbcfa8)
db_da6a25bbcfa8.upgrade()
def downgrade():
pass