diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-01-06 04:02:17 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-01-06 04:02:17 +0000 |
| commit | 0f817ff59dc95f847f95ecfd185f54045ca95f9a (patch) | |
| tree | cfe4ef55275cc8f049d5cc4bd94fbd172ba2047e /taskflow/persistence/backends/sqlalchemy | |
| parent | 14e32d5aef270a43346aa836f8cc2d12a0f3b1ff (diff) | |
| parent | 64677d277553bac7e6656339872245495d2c371c (diff) | |
| download | taskflow-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.py | 18 | ||||
| -rw-r--r-- | taskflow/persistence/backends/sqlalchemy/migration.py | 23 |
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) |
