28 lines
1.0 KiB
Python
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()) |