Source code for searcch.importer.db.migration

import os
import alembic
import alembic.config
import alembic.script
import alembic.migration
import alembic.command

from searcch.importer.util.config import find_configfile,get_config_parser

our_alembic_ini = os.path.join(os.path.dirname(__file__),"alembic.ini")

[docs]def get_alembic_config(): return alembic.config.Config(our_alembic_ini)
[docs]def check_at_head(engine,config=get_alembic_config()): config.set_main_option("sqlalchemy.url",str(engine.url)) directory = alembic.script.ScriptDirectory.from_config(config) with engine.begin() as connection: context = alembic.migration.MigrationContext.configure(connection) return set(context.get_current_heads()) == set(directory.get_heads())
[docs]def upgrade(engine,revision="head",config=get_alembic_config()): config.set_main_option("sqlalchemy.url",str(engine.url)) with engine.begin() as connection: config.attributes["connection"] = engine return alembic.command.upgrade(config,revision)