Files
test-litestar-addressbook/migrate.py
Eden Kirin d4a04adfda Migrations
2023-09-14 22:12:28 +02:00

45 lines
841 B
Python

import subprocess
from dataclasses import dataclass
from app.lib import settings
@dataclass
class DatabaseConfig:
HOST: str
PORT: int
NAME: str
USER: str
PASSWORD: str
def migrate(conf: DatabaseConfig) -> None:
args = [
settings.db.FLYWAY_PATH,
"migrate",
f"-url=jdbc:postgresql://{conf.HOST}:{conf.PORT}/{conf.NAME}",
f"-user={conf.USER}",
f"-password={conf.PASSWORD}",
"-configFiles=migrations/flyway.conf",
]
subprocess.run(
args=args,
encoding="utf-8",
)
def main() -> None:
conf = DatabaseConfig(
HOST=settings.db.HOST,
PORT=settings.db.PORT,
NAME=settings.db.NAME,
USER=settings.db.USER,
PASSWORD=settings.db.PASSWORD,
)
migrate(conf)
if __name__ == "__main__":
main()