INNER CODE UNIT · Python
db_migration
dialoguemd/fastapi-sqla · fastapi_sqla/_pytest_plugin.py:77
def db_migration(db_url: str, sqla_connection: Connection, alembic_ini_path: str):
"""Run alembic upgrade at test session setup and downgrade at tear down.
Override fixture `alembic_ini_path` to change path of `alembic.ini` file.
"""
alembic_config = Config(file_=alembic_ini_path)
alembic_config.set_main_option("sqlalchemy.url", db_url)
with sqla_connection.begin():
sqla_connection.execute(
text("DROP SCHEMA public CASCADE; CREATE SCHEMA public;")
)
command.upgrade(alembic_config, "head")
yield
command.downgrade(alembic_config, "base")