Files
2023-09-20 09:56:52 +02:00

51 lines
1.0 KiB
Python

import subprocess
from dataclasses import dataclass
from pathlib import Path
from app.lib import settings
@dataclass
class DatabaseConfig:
HOST: str
PORT: int
NAME: str
USER: str
PASSWORD: str
def migrate(conf: DatabaseConfig) -> None:
script_path = Path(__file__).parent
migrations_path = script_path / "migrations"
conf_file = migrations_path / "flyway.conf"
args = [
settings.db.FLYWAY_PATH,
"migrate",
f"-url=jdbc:postgresql://{conf.HOST}:{conf.PORT}/{conf.NAME}",
f"-user={conf.USER}",
f"-password={conf.PASSWORD}",
f"-configFiles={conf_file}",
f"-locations=filesystem:{migrations_path}",
]
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()