Migrations
This commit is contained in:
44
migrate.py
Normal file
44
migrate.py
Normal file
@ -0,0 +1,44 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user