Files
Stat-Dashboard/mockups/database.py

25 lines
793 B
Python

"""PostgreSQL connection settings for the development sample service."""
import json
import os
from pathlib import Path
import psycopg
from psycopg.rows import dict_row
ROOT = Path(__file__).resolve().parent.parent
def database_url():
configured = os.environ.get("DATABASE_URL")
if configured:
return configured
local = ROOT / ".local" / "database.json"
if local.exists():
return json.loads(local.read_text(encoding="utf-8-sig"))["url"]
raise RuntimeError("Database is not configured. Run mockups/setup-database.ps1 or set DATABASE_URL.")
def connect():
return psycopg.connect(database_url(), row_factory=dict_row, connect_timeout=5,
options="-c search_path=analytics,public -c timezone=UTC -c statement_timeout=15000")