diff --git a/infrastructure/deployment/RUNBOOK.md b/infrastructure/deployment/RUNBOOK.md index 901daef..35d7d54 100644 --- a/infrastructure/deployment/RUNBOOK.md +++ b/infrastructure/deployment/RUNBOOK.md @@ -131,3 +131,13 @@ curl -s -o /dev/null -w "internt: %{http_code}\n" http://127.0.0.1:4100/healthz curl -s -o /dev/null -w "externt: %{http_code}\n" https://api.cibello.app/healthz sudo docker compose -f /opt/cibello-platform/infrastructure/docker/docker-compose.production.yml ps ``` + +--- + +## 8. Nollställa användardata (försiktigt) + +Använd **`DELETE FROM users`**, aldrig `TRUNCATE users CASCADE`. Recept har en FK +`creator_user_id → users` med `ON DELETE SET NULL`: `DELETE` respekterar det och +**behåller receptkatalogen** (nollställer bara skaparen), medan `TRUNCATE ... CASCADE` +ignorerar `SET NULL` och sveper med hela recept-tabellen. Ta alltid en RDS-snapshot +först, och kör SQL:en via samma `docker exec app-api node`-mönster som db-koll-scripten. diff --git a/infrastructure/docker/Dockerfile.tools b/infrastructure/docker/Dockerfile.tools index 0db360a..5d8cd0f 100644 --- a/infrastructure/docker/Dockerfile.tools +++ b/infrastructure/docker/Dockerfile.tools @@ -16,6 +16,8 @@ COPY package.json pnpm-workspace.yaml pnpm-lock.yaml .npmrc ./ COPY tsconfig.base.json turbo.json ./ COPY brand.config.json ./ COPY packages ./packages +# migrate.ts läser migreringsfilerna (meta/_journal.json + .sql) härifrån +COPY infrastructure/migrations ./infrastructure/migrations # Installera @app/database + dess beroende-closure (drizzle-orm, pg, nutrition-engine, # analytics, shared-types). Faller tillbaka till icke-frozen om lockfile-koll klagar