feat: update migration documentation and remove obsolete file; enhance Prisma recovery instructions
Test Suite / test (24.15.0) (push) Has been cancelled

This commit is contained in:
Nils-Johan Gynther
2026-05-06 09:42:45 +02:00
parent 8200045438
commit 3e27423f24
3 changed files with 83 additions and 2 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ En fullstack-applikation för hantering av hemmavaror och recept. Håll koll på
- [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md): teknisk referens för drift och utveckling.
- [NEXT_STEPS.md](NEXT_STEPS.md): gemensam roadmap och prioriteringar.
- [produktlansering.md](produktlansering.md): releasechecklista.
- [migrering-MSI.md](migrering-MSI.md): migreringshistorik för importer.
- Migrerings- och driftinstruktioner finns nu i [TEKNISK_BESKRIVNING.md](TEKNISK_BESKRIVNING.md). (Tidigare migrering-MSI.md är borttagen då migreringen är klar.)
- [flutter/README.md](flutter/README.md): Flutter ur användarperspektiv.
- [flutter/teknisk_beskrivning_flutter.md](flutter/teknisk_beskrivning_flutter.md): Flutter teknisk referens.
- [flutter/next_steps_flutter.md](flutter/next_steps_flutter.md): Flutter roadmap.
+49 -1
View File
@@ -1,4 +1,52 @@
# Session 2026-05-06: User-scoped AI-fallback, admin-toggles och refaktor
# Migrering: Import-funktion → microservice-importer (GENOMFÖRD 2026-04-30)
Recipe-apps importflöde (quick-import, parse-markdown, receipt-import) är nu migrerat till en separat microservice-importer:
- All URL-skrapning, OCR, PDF-parsning och AI-kvittoparsning sker i microservice-importer (NestJS, Docker, port 3001 internt).
- Backend-till-backend-integration: recipe-app anropar microservice-importer via HTTP, frontend är oförändrad.
- OCR via tesseract.js och Alpine-paket.
- Compose-länkning och healthchecks på plats.
- Bildoptimering sker fortfarande i recipe-app vid sparande.
- Lessons learned: Separat import-microservice ger enklare scaling, robustare deploy och tydligare ansvarsfördelning.
Verifiering:
- Alla endpoints testade (ICA-URL, PDF, bild, markdown, kvitto) och fungerar.
- Auth och proxy-routes oförändrade.
Se även: README.md för användarflöde, och AI-FUNKTIONER.md för AI-detaljer.
# Prisma-migreringar: P3009 recovery och lessons learned
**Problem:**
Prisma migrationer kan fastna i failed state (P3009) om en migration körts med fel SQL-citering (t.ex. "User" istället för `User` i MySQL) eller om deploy avbryts mitt i en migrering.
**Symptom:**
```
migrate found failed migrations in the target database, new migrations will not be applied. The `20260506144000_add_ai_engine_enabled` migration ... failed
```
**Lösning/playbook:**
1. Rätta migrationsfilen så att den använder backticks (`) för tabell- och kolumnnamn (MySQL-stil).
2. Kör:
```bash
docker exec recipe-api sh -lc "cd /app && npx prisma migrate resolve --rolled-back 20260506144000_add_ai_engine_enabled --schema prisma/schema.prisma"
docker exec recipe-api sh -lc "cd /app && npx prisma migrate deploy --schema prisma/schema.prisma"
```
3. Om deploy klagar på duplicate column (dvs kolumnen finns redan):
```bash
docker exec recipe-api sh -lc "cd /app && npx prisma migrate resolve --applied 20260506144000_add_ai_engine_enabled --schema prisma/schema.prisma"
docker exec recipe-api sh -lc "cd /app && npx prisma migrate deploy --schema prisma/schema.prisma"
```
4. Verifiera status:
```bash
docker exec recipe-api sh -lc "cd /app && npx prisma migrate status --schema prisma/schema.prisma"
```
**Lessons learned:**
- Kontrollera alltid SQL-citering i migrationsfiler (MySQL kräver backticks, inte dubbla citattecken).
- Vid P3009: använd `migrate resolve` för att markera migrationen som rolled-back eller applied beroende på DB-läge.
- Kör alltid migrationskommandon i rätt container/miljö för att undvika env- och version-mismatch.
# Session 2026-05-06: User-scoped AI-fallback, admin-toggles och refaktor
Denna session har genomfört en omfattande refaktor och utbyggnad av AI-funktionalitet i Recipe App, med fokus på:
+33
View File
@@ -1,3 +1,36 @@
This file has been removed as all relevant information has been migrated.
# Prisma P3009 recovery (MySQL, migrationer)
**Problem:**
Prisma migrationer kan fastna i failed state (P3009) om en migration körts med fel SQL-citering (t.ex. "User" istället för `User` i MySQL) eller om deploy avbryts mitt i en migrering.
**Symptom:**
```
migrate found failed migrations in the target database, new migrations will not be applied. The `20260506144000_add_ai_engine_enabled` migration ... failed
```
**Lösning/playbook:**
1. Rätta migrationsfilen så att den använder backticks (`) för tabell- och kolumnnamn (MySQL-stil).
2. Kör:
```bash
docker exec recipe-api sh -lc "cd /app && npx prisma migrate resolve --rolled-back 20260506144000_add_ai_engine_enabled --schema prisma/schema.prisma"
docker exec recipe-api sh -lc "cd /app && npx prisma migrate deploy --schema prisma/schema.prisma"
```
3. Om deploy klagar på duplicate column (dvs kolumnen finns redan):
```bash
docker exec recipe-api sh -lc "cd /app && npx prisma migrate resolve --applied 20260506144000_add_ai_engine_enabled --schema prisma/schema.prisma"
docker exec recipe-api sh -lc "cd /app && npx prisma migrate deploy --schema prisma/schema.prisma"
```
4. Verifiera status:
```bash
docker exec recipe-api sh -lc "cd /app && npx prisma migrate status --schema prisma/schema.prisma"
```
**Lessons learned:**
- Kontrollera alltid SQL-citering i migrationsfiler (MySQL kräver backticks, inte dubbla citattecken).
- Vid P3009: använd `migrate resolve` för att markera migrationen som rolled-back eller applied beroende på DB-läge.
- Kör alltid migrationskommandon i rätt container/miljö för att undvika env- och version-mismatch.
# Session 2026-05-06: Migreringar för user-scoped AI och premium
Denna session: