""" Database Backend Bootstrap Import this module before any other imports that use sqlite3. When DATABASE_BACKEND=postgresql, it monkey-patches sys.modules['sqlite3'] with pg_adapter so every subsequent `import sqlite3` gets the PostgreSQL adapter. Default is 'sqlite' (no change — original behavior preserved). """ import os from pathlib import Path # Load .env BEFORE checking DATABASE_BACKEND — systemd services don't set # this env var, so .env is the primary source of truth. try: from dotenv import load_dotenv _env_path = Path(__file__).resolve().parent.parent / '.env' if _env_path.exists(): load_dotenv(_env_path) except ImportError: pass # rely on system env vars if os.getenv('DATABASE_BACKEND', 'sqlite').lower() == 'postgresql': import sys from modules import pg_adapter sys.modules['sqlite3'] = pg_adapter