summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2023-05-04 19:04:30 +0000
committerGerrit Code Review <review@openstack.org>2023-05-04 19:04:30 +0000
commitc76716682443cf67e188db808a806bb4fa7def7b (patch)
tree5cbc2375d43ad1039a52091caea066bb7e8d3441
parentbb5dbdf06f2fe5571b03e46415948434c6a9f4c9 (diff)
parent82029c2c514aaca5b9d45af46d2f7d945ff3099b (diff)
downloadneutron-c76716682443cf67e188db808a806bb4fa7def7b.tar.gz
Merge "Use a writer context for the online alembic migrations"
-rw-r--r--neutron/db/migration/alembic_migrations/env.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/neutron/db/migration/alembic_migrations/env.py b/neutron/db/migration/alembic_migrations/env.py
index dee4f9c474..921e1c5671 100644
--- a/neutron/db/migration/alembic_migrations/env.py
+++ b/neutron/db/migration/alembic_migrations/env.py
@@ -13,14 +13,16 @@
# under the License.
from alembic import context
+from neutron_lib import context as n_context
+from neutron_lib.db import api as db_api
from neutron_lib.db import model_base
from oslo_config import cfg
+from oslo_db import options as db_options
import sqlalchemy as sa
from sqlalchemy import event # noqa
from neutron.db.migration.alembic_migrations import external
from neutron.db.migration import autogen
-from neutron.db.migration.connection import DBConnection
from neutron.db.migration.models import head # noqa
try:
@@ -53,6 +55,13 @@ def set_mysql_engine():
model_base.BASEV2.__table_args__['mysql_engine'])
+def setup_conf():
+ conf = cfg.CONF
+ conf.register_opts(db_options.database_opts, 'database')
+ conf.set_override('connection', neutron_config.database.connection,
+ group='database')
+
+
def include_object(object_, name, type_, reflected, compare_to):
if type_ == 'table' and name in external.TABLES:
return False
@@ -101,11 +110,12 @@ def run_migrations_online():
and associate a connection with the context.
"""
+ setup_conf()
set_mysql_engine()
- connection = config.attributes.get('connection')
- with DBConnection(neutron_config.database.connection, connection) as conn:
+ admin_ctx = n_context.get_admin_context()
+ with db_api.CONTEXT_WRITER.using(admin_ctx) as session:
context.configure(
- connection=conn,
+ connection=session.connection(),
target_metadata=target_metadata,
include_object=include_object,
process_revision_directives=autogen.process_revision_directives