pdf-quiz-generator/backend/app
Daniel 0f3a267fb6 Wire Alembic to live Postgres and fix startup DDL race
- alembic.ini: remove hardcoded sqlite URL
- alembic/env.py: inject DATABASE_URL from container env
- main.py: serialize Base.metadata.create_all() + setup_pgvector() behind
  a Postgres advisory lock (_run_startup_ddl). Previously all 4 uvicorn
  workers ran the DDL in parallel and occasionally deadlocked each other
  on ALTER TABLE ordering, killing one worker at startup.
- CLAUDE.md: add Database migrations (Alembic) section

DB was stamped at 9bac7bf02e38; no schema changes in this commit.
2026-04-14 04:49:23 +02:00
..
middleware Add comprehensive structured logging with Loki + Grafana 2026-04-11 02:53:54 +02:00
models Persist reminders_disabled in Postgres and harden reminder scheduler 2026-04-14 04:31:03 +02:00
routers Persist reminders_disabled in Postgres and harden reminder scheduler 2026-04-14 04:31:03 +02:00
schemas Decouple course quizzes, replace passlib, add security hardening 2026-04-06 21:31:05 +02:00
services Add certificate generation, SCORM support, QTI export/import 2026-04-11 01:30:09 +02:00
tasks Add comprehensive structured logging with Loki + Grafana 2026-04-11 02:53:54 +02:00
utils Persist reminders_disabled in Postgres and harden reminder scheduler 2026-04-14 04:31:03 +02:00
__init__.py Initial commit: PDF Quiz Generator app 2026-03-30 20:04:53 +00:00
cli.py Fix CLI argument handling for all commands 2026-04-08 20:57:58 +02:00
config.py Add comprehensive structured logging with Loki + Grafana 2026-04-11 02:53:54 +02:00
database.py Tag filtering, multi-category, bug fixes, image validation, docs 2026-04-04 22:48:26 +02:00
logging_config.py Add comprehensive structured logging with Loki + Grafana 2026-04-11 02:53:54 +02:00
main.py Wire Alembic to live Postgres and fix startup DDL race 2026-04-14 04:49:23 +02:00