45 lines
841 B
Python
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()
|