In-house patch to skip over unnecessary database migrations for Neutron.
Juno database tables for Neutron do not need these migrations when upgrading
to Kilo.
--- neutron-2015.1.2/neutron/db/migration/alembic_migrations/agent_init_ops.py.orig 2016-04-22 23:23:15.523526779 -0700
+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/agent_init_ops.py 2016-04-22 23:25:39.337181119 -0700
@@ -23,7 +23,10 @@
def upgrade():
- op.create_table(
+ bind = op.get_bind()
+ insp = sa.engine.reflection.Inspector.from_engine(bind)
+ if 'agents' not in insp.get_table_names():
+ op.create_table(
'agents',
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('agent_type', sa.String(length=255), nullable=False),
--- neutron-2015.1.2/neutron/db/migration/alembic_migrations/core_init_ops.py.orig 2016-04-22 23:25:50.350653015 -0700
+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/core_init_ops.py 2016-04-22 23:30:15.715403373 -0700
@@ -19,7 +19,11 @@
def upgrade():
- op.create_table(
+ bind = op.get_bind()
+ insp = sa.engine.reflection.Inspector.from_engine(bind)
+ table_names = insp.get_table_names()
+ if 'networks' not in table_names:
+ op.create_table(
'networks',
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
@@ -29,7 +33,8 @@
sa.Column('shared', sa.Boolean(), nullable=True),
sa.PrimaryKeyConstraint('id'))
- op.create_table(
+ if 'ports' not in table_names:
+ op.create_table(
'ports',
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
@@ -43,7 +48,8 @@
sa.ForeignKeyConstraint(['network_id'], ['networks.id'], ),
sa.PrimaryKeyConstraint('id'))
- op.create_table(
+ if 'subnets' not in table_names:
+ op.create_table(
'subnets',
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
@@ -57,7 +63,8 @@
sa.ForeignKeyConstraint(['network_id'], ['networks.id'], ),
sa.PrimaryKeyConstraint('id'))
- op.create_table(
+ if 'dnsnameservers' not in table_names:
+ op.create_table(
'dnsnameservers',
sa.Column('address', sa.String(length=128), nullable=False),
sa.Column('subnet_id', sa.String(length=36), nullable=False),
@@ -65,7 +72,8 @@
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('address', 'subnet_id'))
- op.create_table(
+ if 'ipallocationpools' not in table_names:
+ op.create_table(
'ipallocationpools',
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('subnet_id', sa.String(length=36), nullable=True),
@@ -75,7 +83,8 @@
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'))
- op.create_table(
+ if 'subnetroutes' not in table_names:
+ op.create_table(
'subnetroutes',
sa.Column('destination', sa.String(length=64), nullable=False),
sa.Column('nexthop', sa.String(length=64), nullable=False),
@@ -84,7 +93,8 @@
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('destination', 'nexthop', 'subnet_id'))
- op.create_table(
+ if 'ipallocations' not in table_names:
+ op.create_table(
'ipallocations',
sa.Column('port_id', sa.String(length=36), nullable=True),
sa.Column('ip_address', sa.String(length=64), nullable=False),
@@ -97,7 +107,8 @@
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('ip_address', 'subnet_id', 'network_id'))
- op.create_table(
+ if 'ipavailabilityranges' not in table_names:
+ op.create_table(
'ipavailabilityranges',
sa.Column('allocation_pool_id', sa.String(length=36), nullable=False),
sa.Column('first_ip', sa.String(length=64), nullable=False),
@@ -106,7 +117,8 @@
['ipallocationpools.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('allocation_pool_id', 'first_ip', 'last_ip'))
- op.create_table(
+ if 'networkdhcpagentbindings' not in table_names:
+ op.create_table(
'networkdhcpagentbindings',
sa.Column('network_id', sa.String(length=36), nullable=False),
sa.Column('dhcp_agent_id', sa.String(length=36), nullable=False),
--- neutron-2015.1.2/neutron/db/migration/alembic_migrations/l3_init_ops.py.orig 2016-04-22 23:35:15.205163303 -0700
+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/l3_init_ops.py 2016-04-22 23:33:36.741262443 -0700
@@ -31,14 +31,20 @@
def upgrade():
- op.create_table(
+ bind = op.get_bind()
+ insp = sa.engine.reflection.Inspector.from_engine(bind)
+ table_names = insp.get_table_names()
+
+ if 'externalnetworks' not in table_names:
+ op.create_table(
'externalnetworks',
sa.Column('network_id', sa.String(length=36), nullable=False),
sa.ForeignKeyConstraint(['network_id'], ['networks.id'],
ondelete='CASCADE'),
sa.PrimaryKeyConstraint('network_id'))
- op.create_table(
+ if 'routers' not in table_names:
+ op.create_table(
'routers',
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
@@ -51,7 +57,8 @@
sa.ForeignKeyConstraint(['gw_port_id'], ['ports.id'], ),
sa.PrimaryKeyConstraint('id'))
- op.create_table(
+ if 'floatingips' not in table_names:
+ op.create_table(
'floatingips',
sa.Column('tenant_id', sa.String(length=255), nullable=True),
sa.Column('id', sa.String(length=36), nullable=False),
--- neutron-2015.1.2/neutron/db/migration/alembic_migrations/other_extensions_init_ops.py.orig 2016-04-22 23:35:35.724592904 -0700
+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/other_extensions_init_ops.py 2016-04-22 23:37:11.709485583 -0700
@@ -34,7 +34,10 @@
sa.PrimaryKeyConstraint('provider_name', 'resource_id'),
sa.UniqueConstraint('resource_id'))
- op.create_table(
+ bind = op.get_bind()
+ insp = sa.engine.reflection.Inspector.from_engine(bind)
+ if 'quotas' not in insp.get_table_names():
+ op.create_table(
'quotas',
sa.Column('id', sa.String(length=36), nullable=False),
sa.Column('tenant_id', sa.String(length=255), nullable=True),
--- neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/1fcfc149aca4_agents_unique_by_type_and_host.py.orig 2016-04-23 01:59:50.554268246 -0700
+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/1fcfc149aca4_agents_unique_by_type_and_host.py 2016-04-23 02:01:10.767910540 -0700
@@ -26,6 +26,7 @@
down_revision = 'e197124d4b9'
from alembic import op
+import sqlalchemy as sa
from neutron.db import migration
@@ -41,7 +42,14 @@
# configured plugin did not create the agents table.
return
- op.create_unique_constraint(
+ bind = op.get_bind()
+ insp = sa.engine.reflection.Inspector.from_engine(bind)
+ u_cons_list = insp.get_unique_constraints(TABLE_NAME)
+ u_cons = []
+ for c in u_cons_list:
+ u_cons.append(c['name'])
+ if UC_NAME not in u_cons:
+ op.create_unique_constraint(
name=UC_NAME,
source=TABLE_NAME,
local_cols=['agent_type', 'host']
--- neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/2eeaf963a447_floatingip_status.py.orig 2016-04-22 23:41:17.060181778 -0700
+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/2eeaf963a447_floatingip_status.py 2016-04-22 23:57:26.134124564 -0700
@@ -38,11 +38,20 @@
# did not create the floatingips table.
return
- op.add_column('floatingips',
+ bind = op.get_bind()
+ insp = sa.engine.reflection.Inspector.from_engine(bind)
+ col_names_list = insp.get_columns('floatingips')
+ col_names = []
+ for c in col_names_list:
+ col_names.append(c['name'])
+
+ if 'last_known_router_id' not in col_names:
+ op.add_column('floatingips',
sa.Column('last_known_router_id',
sa.String(length=36),
nullable=True))
- op.add_column('floatingips',
+ if 'status' not in col_names:
+ op.add_column('floatingips',
sa.Column('status',
sa.String(length=16),
nullable=True))
--- neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/2447ad0e9585_add_ipv6_mode_props.py.orig 2016-04-22 23:42:16.956052992 -0700
+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/2447ad0e9585_add_ipv6_mode_props.py 2016-04-22 23:54:33.628120696 -0700
@@ -37,7 +37,15 @@
% ('slaac', 'dhcpv6-stateful', 'dhcpv6-stateless'))
op.execute("CREATE TYPE ipv6_address_modes AS ENUM ('%s', '%s', '%s')"
% ('slaac', 'dhcpv6-stateful', 'dhcpv6-stateless'))
- op.add_column('subnets',
+ bind = op.get_bind()
+ insp = sa.engine.reflection.Inspector.from_engine(bind)
+ col_names_list = insp.get_columns('subnets')
+ col_names = []
+ for c in col_names_list:
+ col_names.append(c['name'])
+
+ if 'ipv6_ra_mode' not in col_names:
+ op.add_column('subnets',
sa.Column('ipv6_ra_mode',
sa.Enum('slaac',
'dhcpv6-stateful',
@@ -45,7 +53,8 @@
name='ipv6_ra_modes'),
nullable=True)
)
- op.add_column('subnets',
+ if 'ipv6_address_mode' not in col_names:
+ op.add_column('subnets',
sa.Column('ipv6_address_mode',
sa.Enum('slaac',
'dhcpv6-stateful',
--- neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/544673ac99ab_add_router_port_table.py.orig 2016-04-22 23:43:11.770727387 -0700
+++ neutron-2015.1.2/neutron/db/migration/alembic_migrations/versions/544673ac99ab_add_router_port_table.py 2016-04-22 23:45:53.016161819 -0700
@@ -40,7 +40,10 @@
def upgrade():
- op.create_table(
+ bind = op.get_bind()
+ insp = sa.engine.reflection.Inspector.from_engine(bind)
+ if 'routerports' not in insp.get_table_names():
+ op.create_table(
'routerports',
sa.Column('router_id', sa.String(length=36), nullable=False),
sa.Column('port_id', sa.String(length=36), nullable=False),
@@ -59,6 +59,6 @@
['ports.id'],
ondelete='CASCADE'
),
- )
+ )
- op.execute(SQL_STATEMENT)
+ op.execute(SQL_STATEMENT)