summaryrefslogtreecommitdiff
path: root/taskflow/persistence/backends/sqlalchemy
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-01-06 04:02:17 +0000
committerGerrit Code Review <review@openstack.org>2016-01-06 04:02:17 +0000
commit0f817ff59dc95f847f95ecfd185f54045ca95f9a (patch)
treecfe4ef55275cc8f049d5cc4bd94fbd172ba2047e /taskflow/persistence/backends/sqlalchemy
parent14e32d5aef270a43346aa836f8cc2d12a0f3b1ff (diff)
parent64677d277553bac7e6656339872245495d2c371c (diff)
downloadtaskflow-0f817ff59dc95f847f95ecfd185f54045ca95f9a.tar.gz
Merge "Use alembic upgrade function/command directly"
Diffstat (limited to 'taskflow/persistence/backends/sqlalchemy')
-rw-r--r--taskflow/persistence/backends/sqlalchemy/alembic/env.py18
-rw-r--r--taskflow/persistence/backends/sqlalchemy/migration.py23
2 files changed, 15 insertions, 26 deletions
diff --git a/taskflow/persistence/backends/sqlalchemy/alembic/env.py b/taskflow/persistence/backends/sqlalchemy/alembic/env.py
index a864ac0..4e0a3eb 100644
--- a/taskflow/persistence/backends/sqlalchemy/alembic/env.py
+++ b/taskflow/persistence/backends/sqlalchemy/alembic/env.py
@@ -60,18 +60,16 @@ def run_migrations_online():
and associate a connection with the context.
"""
- engine = engine_from_config(config.get_section(config.config_ini_section),
- prefix='sqlalchemy.',
- poolclass=pool.NullPool)
-
- connection = engine.connect()
- context.configure(connection=connection, target_metadata=target_metadata)
-
- try:
+ connectable = config.attributes.get('connection', None)
+ if connectable is None:
+ connectable = engine_from_config(
+ config.get_section(config.config_ini_section),
+ prefix='sqlalchemy.', poolclass=pool.NullPool)
+ with connectable.connect() as connection:
+ context.configure(connection=connection,
+ target_metadata=target_metadata)
with context.begin_transaction():
context.run_migrations()
- finally:
- connection.close()
if context.is_offline_mode():
diff --git a/taskflow/persistence/backends/sqlalchemy/migration.py b/taskflow/persistence/backends/sqlalchemy/migration.py
index 6d91e34..ca07324 100644
--- a/taskflow/persistence/backends/sqlalchemy/migration.py
+++ b/taskflow/persistence/backends/sqlalchemy/migration.py
@@ -18,25 +18,16 @@
import os
-from alembic import config as a_config
-from alembic import environment as a_env
-from alembic import script as a_script
+from alembic import command
+from alembic import config
-def _alembic_config():
+def _make_alembic_config():
path = os.path.join(os.path.dirname(__file__), 'alembic', 'alembic.ini')
- return a_config.Config(path)
+ return config.Config(path)
def db_sync(connection, revision='head'):
- script = a_script.ScriptDirectory.from_config(_alembic_config())
-
- def upgrade(rev, context):
- return script._upgrade_revs(revision, rev)
-
- config = _alembic_config()
- with a_env.EnvironmentContext(config, script, fn=upgrade, as_sql=False,
- starting_rev=None, destination_rev=revision,
- tag=None) as context:
- context.configure(connection=connection)
- context.run_migrations()
+ cfg = _make_alembic_config()
+ cfg.attributes['connection'] = connection
+ command.upgrade(cfg, revision)