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())