Spaces:
Paused
Paused
| #!/usr/bin/env python3 | |
| from __future__ import annotations | |
| import os | |
| from sqlalchemy import create_engine, inspect, text | |
| TABLES_TO_CHECK = [ | |
| "otree_session", | |
| "otree_participant", | |
| "otree_page_completion", | |
| ] | |
| def main() -> int: | |
| url = os.environ.get("DATABASE_URL") | |
| if not url: | |
| print("[db-debug] DATABASE_URL not set") | |
| return 0 | |
| print(f"[db-debug] Connecting with URL: {url}") | |
| engine = create_engine(url) | |
| try: | |
| with engine.connect() as conn: | |
| print(f"[db-debug] Connected; dialect={conn.dialect.name}") | |
| inspector = inspect(conn) | |
| for table in TABLES_TO_CHECK: | |
| if not inspector.has_table(table): | |
| print(f"[db-debug] {table}: missing (skipping)") | |
| continue | |
| try: | |
| count = conn.execute(text(f"SELECT COUNT(*) FROM {table}")).scalar() | |
| print(f"[db-debug] {table}: {count}") | |
| except Exception as exc: # noqa: BLE001 | |
| print(f"[db-debug] {table}: error {exc}") | |
| except Exception as exc: # noqa: BLE001 | |
| print(f"[db-debug] Connection failed: {exc}") | |
| return 0 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |