docs: document 'codex migrate' + MIGRATION_DATABASE_URL as the schema-sync path
README step 4 used an inline apply_schema over the app DATABASE_URL, which fails under the privilege model (least-privilege app role cannot run DDL). Replace it with 'codex migrate' and document MIGRATION_DATABASE_URL (owner/superuser) in the README env table and .env.example, so the privileged migrate path is the standard for future schema upgrades. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
15
README.md
15
README.md
@@ -19,13 +19,11 @@ $EDITOR .env
|
||||
# 3. Install Python dependencies (requires uv)
|
||||
uv sync
|
||||
|
||||
# 4. Apply the database schema (first run only)
|
||||
uv run python -c "
|
||||
from codex.db import get_conn, apply_schema
|
||||
with get_conn() as conn:
|
||||
apply_schema(conn)
|
||||
print('Schema applied.')
|
||||
"
|
||||
# 4. Apply the database schema (idempotent — safe to re-run after upgrades)
|
||||
# Needs a role that can run DDL. If DATABASE_URL is a least-privilege app
|
||||
# role, point MIGRATION_DATABASE_URL at an owner/superuser connection first:
|
||||
# MIGRATION_DATABASE_URL=postgresql://postgres:...@host:5432/papers
|
||||
uv run codex migrate
|
||||
```
|
||||
|
||||
---
|
||||
@@ -34,7 +32,8 @@ print('Schema applied.')
|
||||
|
||||
| Variable | Default | Description |
|
||||
|---|---|---|
|
||||
| `DATABASE_URL` | `postgresql://researcher:change_me@localhost:5432/papers` | libpq connection string |
|
||||
| `DATABASE_URL` | `postgresql://researcher:change_me@localhost:5432/papers` | libpq connection string (app role; DML) |
|
||||
| `MIGRATION_DATABASE_URL` | *(falls back to `DATABASE_URL`)* | Privileged connection used by `codex migrate` for schema DDL (owner/superuser) |
|
||||
| `GROBID_URL` | `http://localhost:8070` | GROBID HTTP API base URL |
|
||||
| `OLLAMA_BASE_URL` | `http://localhost:11434` | Local Ollama endpoint (optional) |
|
||||
| `EMBEDDING_MODEL` | `BAAI/bge-m3` | sentence-transformers model name |
|
||||
|
||||
Reference in New Issue
Block a user