feat: add SQLAlchemy declarative base, Alembic environment, and gitignore fix

Configures stable constraint naming so autogeneration produces clean diffs.
Alembic uses the sync psycopg driver while the runtime app uses asyncpg.

Also fixes a .gitignore bug caught during this task: the bare 'models/'
rule for the ML weights volume was matching backend/app/models/ (Python
package). Anchored all volume rules to repo root (/images/, /import/,
/downloads/, /models/, /postgres_data/, /redis_data/).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-14 07:32:58 -04:00
parent fe0a311d39
commit a03655039c
7 changed files with 150 additions and 7 deletions
+8 -7
View File
@@ -42,13 +42,14 @@ yarn-error.log*
extension/*.xpi
extension/web-ext-artifacts/
# Runtime volumes (must never be tracked)
images/
import/
downloads/
models/
postgres_data/
redis_data/
# Runtime volumes (must never be tracked) — anchored to repo root so they
# don't accidentally match Python package dirs like backend/app/models/
/images/
/import/
/downloads/
/models/
/postgres_data/
/redis_data/
# IDE / OS
.vscode/