54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
from .db.database import Database, DatabaseConfig
|
|
from .settings import settings
|
|
|
|
|
|
PORTAL_MIGRATION_LOCK_ID = 982731
|
|
ARIADNE_MIGRATION_LOCK_ID = 982732
|
|
|
|
|
|
def _build_db(dsn: str, application_name: str) -> Database:
|
|
return Database(
|
|
dsn,
|
|
DatabaseConfig(
|
|
pool_min=settings.ariadne_db_pool_min,
|
|
pool_max=settings.ariadne_db_pool_max,
|
|
connect_timeout_sec=settings.ariadne_db_connect_timeout_sec,
|
|
lock_timeout_sec=settings.ariadne_db_lock_timeout_sec,
|
|
statement_timeout_sec=settings.ariadne_db_statement_timeout_sec,
|
|
idle_in_tx_timeout_sec=settings.ariadne_db_idle_in_tx_timeout_sec,
|
|
application_name=application_name,
|
|
),
|
|
)
|
|
|
|
|
|
def main() -> None:
|
|
if not settings.ariadne_run_migrations:
|
|
return
|
|
|
|
ariadne_db = _build_db(settings.ariadne_database_url, "ariadne_migrate")
|
|
try:
|
|
ariadne_db.migrate(
|
|
ARIADNE_MIGRATION_LOCK_ID,
|
|
include_ariadne_tables=True,
|
|
include_access_requests=False,
|
|
)
|
|
finally:
|
|
ariadne_db.close()
|
|
|
|
if settings.portal_database_url:
|
|
portal_db = _build_db(settings.portal_database_url, "ariadne_portal_migrate")
|
|
try:
|
|
portal_db.migrate(
|
|
PORTAL_MIGRATION_LOCK_ID,
|
|
include_ariadne_tables=False,
|
|
include_access_requests=True,
|
|
)
|
|
finally:
|
|
portal_db.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|