Files
service_manager/backend/run_migrations.py

28 lines
1.0 KiB
Python

import asyncio
from alembic.config import Config
from alembic.script import ScriptDirectory
from alembic.runtime.environment import EnvironmentContext
from sqlalchemy.ext.asyncio import create_async_engine
async def run_async_migrations():
alembic_cfg = Config("alembic.ini")
script = ScriptDirectory.from_config(alembic_cfg)
engine = create_async_engine("postgresql+asyncpg://servicemanager:servicemanager123@172.19.0.3:5432/servicemanager")
async with engine.connect() as connection:
def do_run_migrations(connection):
with EnvironmentContext(
alembic_cfg,
script,
connection=connection,
fn=lambda rev, context: script.run_env()
) as context:
context.configure(connection=connection, target_metadata=None)
with context.begin_transaction():
context.run_migrations()
await connection.run_sync(do_run_migrations)
if __name__ == "__main__":
asyncio.run(run_async_migrations())