Init separate alembic migration chain
Change-Id: Iad845a5771cf2503f1135e0a3a92f7bcc807a275
This commit is contained in:
parent
d1ee692342
commit
8629af8e7f
59
neutron_vpnaas/db/migration/alembic.ini
Normal file
59
neutron_vpnaas/db/migration/alembic.ini
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# A generic, single database configuration.
|
||||||
|
|
||||||
|
[alembic]
|
||||||
|
# path to migration scripts
|
||||||
|
script_location = alembic_migrations
|
||||||
|
|
||||||
|
# template used to generate migration files
|
||||||
|
# file_template = %%(rev)s_%%(slug)s
|
||||||
|
|
||||||
|
# max length of characters to apply to the
|
||||||
|
# "slug" field
|
||||||
|
#truncate_slug_length = 40
|
||||||
|
|
||||||
|
# set to 'true' to run the environment during
|
||||||
|
# the 'revision' command, regardless of autogenerate
|
||||||
|
# revision_environment = false
|
||||||
|
|
||||||
|
# set to 'true' to allow .pyc and .pyo files without
|
||||||
|
# a source .py file to be detected as revisions in the
|
||||||
|
# versions/ directory
|
||||||
|
# sourceless = false
|
||||||
|
|
||||||
|
sqlalchemy.url = driver://user:pass@localhost/dbname
|
||||||
|
|
||||||
|
|
||||||
|
# Logging configuration
|
||||||
|
[loggers]
|
||||||
|
keys = root,sqlalchemy,alembic
|
||||||
|
|
||||||
|
[handlers]
|
||||||
|
keys = console
|
||||||
|
|
||||||
|
[formatters]
|
||||||
|
keys = generic
|
||||||
|
|
||||||
|
[logger_root]
|
||||||
|
level = WARN
|
||||||
|
handlers = console
|
||||||
|
qualname =
|
||||||
|
|
||||||
|
[logger_sqlalchemy]
|
||||||
|
level = WARN
|
||||||
|
handlers =
|
||||||
|
qualname = sqlalchemy.engine
|
||||||
|
|
||||||
|
[logger_alembic]
|
||||||
|
level = INFO
|
||||||
|
handlers =
|
||||||
|
qualname = alembic
|
||||||
|
|
||||||
|
[handler_console]
|
||||||
|
class = StreamHandler
|
||||||
|
args = (sys.stderr,)
|
||||||
|
level = NOTSET
|
||||||
|
formatter = generic
|
||||||
|
|
||||||
|
[formatter_generic]
|
||||||
|
format = %(levelname)-5.5s [%(name)s] %(message)s
|
||||||
|
datefmt = %H:%M:%S
|
1
neutron_vpnaas/db/migration/alembic_migrations/README
Normal file
1
neutron_vpnaas/db/migration/alembic_migrations/README
Normal file
@ -0,0 +1 @@
|
|||||||
|
Generic single-database configuration.
|
86
neutron_vpnaas/db/migration/alembic_migrations/env.py
Normal file
86
neutron_vpnaas/db/migration/alembic_migrations/env.py
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
|
||||||
|
from logging import config as logging_config
|
||||||
|
|
||||||
|
from alembic import context
|
||||||
|
from neutron.db import model_base
|
||||||
|
from oslo.config import cfg
|
||||||
|
from oslo.db.sqlalchemy import session
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy import event
|
||||||
|
|
||||||
|
|
||||||
|
MYSQL_ENGINE = None
|
||||||
|
VPNAAS_VERSION_TABLE = 'alembic_version_vpnaas'
|
||||||
|
config = context.config
|
||||||
|
neutron_config = config.neutron_config
|
||||||
|
logging_config.fileConfig(config.config_file_name)
|
||||||
|
target_metadata = model_base.BASEV2.metadata
|
||||||
|
|
||||||
|
|
||||||
|
def set_mysql_engine():
|
||||||
|
try:
|
||||||
|
mysql_engine = neutron_config.command.mysql_engine
|
||||||
|
except cfg.NoSuchOptError:
|
||||||
|
mysql_engine = None
|
||||||
|
|
||||||
|
global MYSQL_ENGINE
|
||||||
|
MYSQL_ENGINE = (mysql_engine or
|
||||||
|
model_base.BASEV2.__table_args__['mysql_engine'])
|
||||||
|
|
||||||
|
|
||||||
|
def run_migrations_offline():
|
||||||
|
set_mysql_engine()
|
||||||
|
|
||||||
|
kwargs = dict()
|
||||||
|
if neutron_config.database.connection:
|
||||||
|
kwargs['url'] = neutron_config.database.connection
|
||||||
|
else:
|
||||||
|
kwargs['dialect_name'] = neutron_config.database.engine
|
||||||
|
kwargs['version_table'] = VPNAAS_VERSION_TABLE
|
||||||
|
context.configure(**kwargs)
|
||||||
|
|
||||||
|
with context.begin_transaction():
|
||||||
|
context.run_migrations()
|
||||||
|
|
||||||
|
|
||||||
|
@event.listens_for(sa.Table, 'after_parent_attach')
|
||||||
|
def set_storage_engine(target, parent):
|
||||||
|
if MYSQL_ENGINE:
|
||||||
|
target.kwargs['mysql_engine'] = MYSQL_ENGINE
|
||||||
|
|
||||||
|
|
||||||
|
def run_migrations_online():
|
||||||
|
set_mysql_engine()
|
||||||
|
engine = session.create_engine(neutron_config.database.connection)
|
||||||
|
|
||||||
|
connection = engine.connect()
|
||||||
|
context.configure(
|
||||||
|
connection=connection,
|
||||||
|
target_metadata=target_metadata,
|
||||||
|
version_table=VPNAAS_VERSION_TABLE
|
||||||
|
)
|
||||||
|
try:
|
||||||
|
with context.begin_transaction():
|
||||||
|
context.run_migrations()
|
||||||
|
finally:
|
||||||
|
connection.close()
|
||||||
|
engine.dispose()
|
||||||
|
|
||||||
|
|
||||||
|
if context.is_offline_mode():
|
||||||
|
run_migrations_offline()
|
||||||
|
else:
|
||||||
|
run_migrations_online()
|
@ -0,0 +1,22 @@
|
|||||||
|
"""${message}
|
||||||
|
|
||||||
|
Revision ID: ${up_revision}
|
||||||
|
Revises: ${down_revision}
|
||||||
|
Create Date: ${create_date}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = ${repr(up_revision)}
|
||||||
|
down_revision = ${repr(down_revision)}
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
${imports if imports else ""}
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
${upgrades if upgrades else "pass"}
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
${downgrades if downgrades else "pass"}
|
@ -0,0 +1 @@
|
|||||||
|
start_neutron_vpnaas
|
@ -0,0 +1,34 @@
|
|||||||
|
# Copyright 2014 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
"""start neutron-vpnaas chain
|
||||||
|
|
||||||
|
Revision ID: start_neutron_vpnaas
|
||||||
|
Revises: None
|
||||||
|
Create Date: 2014-12-09 18:50:01.946832
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = 'start_neutron_vpnaas'
|
||||||
|
down_revision = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
pass
|
Loading…
Reference in New Issue
Block a user