feat(backend): add Alembic migrations
- Add alembic 1.14 to dependencies (uv sync → 1.18.4 installed) - Configure alembic/env.py: loads DATABASE_URL from env, imports all SQLModel models so metadata is fully populated for autogenerate - Generate initial migration (c2d626a2b36c) covering all 9 tables: products, product_inventory, medication_entries, medication_usages, lab_results, routines, routine_steps, grooming_schedule, skin_condition_snapshots — with all indexes and constraints - Add ExecStartPre to innercontext.service: runs alembic upgrade head before uvicorn starts (idempotent, safe on every restart) - Update DEPLOYMENT.md: add migration step to backend setup and update flow; document alembic stamp head for existing installations Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
95fbdeb212
commit
3c1dcbeb06
9 changed files with 577 additions and 2 deletions
|
|
@ -137,12 +137,25 @@ chmod 600 /opt/innercontext/backend/.env
|
|||
chown innercontext:innercontext /opt/innercontext/backend/.env
|
||||
```
|
||||
|
||||
### Run database migrations
|
||||
|
||||
```bash
|
||||
sudo -u innercontext bash -c '
|
||||
cd /opt/innercontext/backend
|
||||
uv run alembic upgrade head
|
||||
'
|
||||
```
|
||||
|
||||
This creates all tables on first run. On subsequent deploys it applies only the new migrations.
|
||||
|
||||
> **Existing database (tables already created by `create_db_and_tables`):**
|
||||
> Run `uv run alembic stamp head` instead to mark the current schema as migrated without re-running DDL.
|
||||
|
||||
### Test
|
||||
|
||||
```bash
|
||||
sudo -u innercontext bash -c '
|
||||
cd /opt/innercontext/backend
|
||||
source .env
|
||||
uv run uvicorn main:app --host 127.0.0.1 --port 8000
|
||||
'
|
||||
# Ctrl-C after confirming it starts
|
||||
|
|
@ -260,9 +273,12 @@ The web UI should be accessible at `http://innercontext.lan`.
|
|||
cd /opt/innercontext
|
||||
git pull
|
||||
|
||||
# If backend dependencies changed:
|
||||
# Sync backend dependencies if pyproject.toml changed:
|
||||
cd backend && sudo -u innercontext uv sync && cd ..
|
||||
|
||||
# Apply any new DB migrations (runs automatically via ExecStartPre, but safe to run manually first):
|
||||
sudo -u innercontext bash -c 'cd /opt/innercontext/backend && uv run alembic upgrade head'
|
||||
|
||||
# Rebuild frontend:
|
||||
cd frontend && sudo -u innercontext bash -c '
|
||||
pnpm install
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue