Fixed
- PostgreSQL migrations silently rolled back — The advisory lock used to serialize concurrent migrations was acquired before Alembic's
context.configure(), triggering SQLAlchemy's autobegin. Alembic detected this as an external transaction and skipped its own transaction management, so DDL changes (new columns, tables) were never committed. Switched topg_advisory_xact_lock()inside the transaction block so Alembic properly commits. Fixes #70.
📋 Full changelog: docs/CHANGELOG.md