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