Files
votianng/scripts/check-database.py
T

39 lines
1.3 KiB
Python

#!/usr/bin/env python3
"""Run read-only metadata diagnostics through the backend's shared DatabaseService."""
import importlib.util
import json
import os
from pathlib import Path
import sys
ROOT = Path(__file__).resolve().parents[1]
spec = importlib.util.spec_from_file_location("legacy_config", ROOT / "scripts/run-backend.py")
config = importlib.util.module_from_spec(spec)
spec.loader.exec_module(config)
def failure(message):
print(json.dumps({"connected": False, "reason": "CONFIGURATION_ERROR", "errorCode": None,
"message": message, "applicationRowsRead": 0, "writes": 0},
ensure_ascii=False, indent=2))
return 2
def main():
try:
jar = config.backend_jar(ROOT)
except FileNotFoundError:
return failure("Kein eindeutiges Backend-JAR. Zuerst ./build.sh ausführen.")
try:
env = config.database_environment(ROOT, dict(os.environ))
os.chdir(ROOT / "backend")
# Credentials are passed only in the environment, never as process arguments.
os.execvpe("java", ["java", "-jar", str(jar), "--database-check"], env)
except (OSError, ValueError):
return failure("Backend-Start oder DB_URL, DB_USER und DB_PASSWORD in .env/Umgebung prüfen.")
return 0
if __name__ == "__main__":
sys.exit(main())