20 lines
623 B
Python
20 lines
623 B
Python
|
import logging
|
||
|
|
||
|
from alembic.config import Config
|
||
|
from alembic.script import ScriptDirectory
|
||
|
from alembic.environment import EnvironmentContext
|
||
|
from alembic.migration import __name__ as migration_name
|
||
|
|
||
|
def run_alembic_migration(log_handler=None):
|
||
|
if log_handler:
|
||
|
logging.getLogger(migration_name).addHandler(log_handler)
|
||
|
|
||
|
config = Config()
|
||
|
config.set_main_option("script_location", "data:migrations")
|
||
|
script = ScriptDirectory.from_config(config)
|
||
|
|
||
|
def fn(rev, context):
|
||
|
return script._upgrade_revs('head', rev)
|
||
|
|
||
|
with EnvironmentContext(config, script, fn=fn, destination_rev='head'):
|
||
|
script.run_env()
|