feat(01-03): scaffold Alembic async config and author 0001_initial_schema migration

- backend/alembic.ini: script_location=migrations, sqlalchemy.url=%(DATABASE_MIGRATE_URL)s
- backend/migrations/env.py: async_engine_from_config + Base.metadata wiring;
  runtime os.environ.get("DATABASE_MIGRATE_URL") injection (alembic.ini interpolation
  does not read OS env directly)
- backend/migrations/versions/0001_initial_schema.py: creates all 11 tables in
  dependency order with correct FKs, indexes, and named constraints
- documents.user_id is nullable=True per D-03; Phase 2 adds NOT NULL
- Ends with GRANT + ALTER DEFAULT PRIVILEGES for docuvault_app (Pitfall 4)
- Also grants USAGE/SELECT on sequences (audit_log.id autoincrement)
- downgrade() drops all tables in reverse dependency order
This commit is contained in:
curo1305
2026-05-22 09:20:49 +02:00
parent 3e1fcd69b5
commit 75ea7ef106
5 changed files with 536 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
Generic single-database configuration with an async dbapi.