chore: consolidate platform split checks
This commit is contained in:
@@ -20,6 +20,9 @@ from govoplan_core.server.registry import available_module_manifests, build_plat
|
||||
|
||||
DEFAULT_APP = "govoplan_core.server.app:app"
|
||||
DEFAULT_CONFIG = "govoplan_core.server.default_config:get_server_config"
|
||||
DEFAULT_DEV_DATABASE_URL = "postgresql+psycopg://govoplan_dev@127.0.0.1:5432/govoplan_dev"
|
||||
DEFAULT_DEV_DATABASE_URL_PGTOOLS = "postgresql://govoplan_dev@127.0.0.1:5432/govoplan_dev"
|
||||
DEFAULT_SQLITE_DATABASE_NAME = "multimailer-dev.db"
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
@@ -61,13 +64,23 @@ def apply_runtime_defaults(config_path: str | None) -> Path | None:
|
||||
(runtime_root / "runtime" / "files").mkdir(parents=True, exist_ok=True)
|
||||
(runtime_root / "runtime" / "mock-mailbox").mkdir(parents=True, exist_ok=True)
|
||||
|
||||
dev_database_backend = os.getenv("GOVOPLAN_DEV_DATABASE_BACKEND", "postgres").strip().lower()
|
||||
default_database_url = DEFAULT_DEV_DATABASE_URL
|
||||
default_pgtools_url = DEFAULT_DEV_DATABASE_URL_PGTOOLS
|
||||
if dev_database_backend == "sqlite":
|
||||
default_database_url = f"sqlite:///{runtime_root / 'runtime' / DEFAULT_SQLITE_DATABASE_NAME}"
|
||||
default_pgtools_url = ""
|
||||
|
||||
defaults = {
|
||||
"DATABASE_URL": f"sqlite:///{runtime_root / 'runtime' / 'multimailer-dev.db'}",
|
||||
"DATABASE_URL": os.getenv("GOVOPLAN_DEV_DATABASE_URL", default_database_url),
|
||||
"DEV_BOOTSTRAP_ENABLED": "true",
|
||||
"FILE_STORAGE_LOCAL_ROOT": str(runtime_root / "runtime" / "files"),
|
||||
"MOCK_MAILBOX_DIR": str(runtime_root / "runtime" / "mock-mailbox"),
|
||||
}
|
||||
for key, value in defaults.items():
|
||||
os.environ.setdefault(key, value)
|
||||
if default_pgtools_url:
|
||||
os.environ.setdefault("GOVOPLAN_DATABASE_URL_PGTOOLS", os.getenv("GOVOPLAN_DEV_DATABASE_URL_PGTOOLS", default_pgtools_url))
|
||||
return runtime_root
|
||||
|
||||
|
||||
@@ -95,7 +108,7 @@ def validate_sqlite_database_url(database_url: str) -> None:
|
||||
raise SystemExit(
|
||||
f"DATABASE_URL points to {db_path}, but its parent directory does not exist. "
|
||||
"Unset stale DATABASE_URL or set it to "
|
||||
f"sqlite:///{Path.cwd().resolve() / 'runtime' / 'multimailer-dev.db'}."
|
||||
f"sqlite:///{Path.cwd().resolve() / 'runtime' / DEFAULT_SQLITE_DATABASE_NAME}."
|
||||
)
|
||||
|
||||
|
||||
@@ -285,6 +298,10 @@ def print_devserver_summary(state: DevserverState, *, app: str, no_reload: bool)
|
||||
print(f"Runtime root: {state.runtime_root}")
|
||||
if state.database_url:
|
||||
print(f"Database: {state.database_url}")
|
||||
if state.database_url.startswith("postgresql"):
|
||||
pgtools_url = os.getenv("GOVOPLAN_DATABASE_URL_PGTOOLS")
|
||||
if pgtools_url:
|
||||
print(f"PostgreSQL tools URL: {pgtools_url}")
|
||||
if state.bootstrap_db_path is not None:
|
||||
bootstrap_state = "enabled" if getattr(state.config.settings, "dev_bootstrap_enabled", False) else "disabled by DEV_BOOTSTRAP_ENABLED"
|
||||
print(f"Dev bootstrap for missing SQLite DB: {bootstrap_state} ({state.bootstrap_db_path})")
|
||||
|
||||
Reference in New Issue
Block a user