batchCooking/apps/api
Nicolas d761a3795f fix(migrations): rend la migration ingredient_taxonomy_rework safe sur des données existantes
La version générée automatiquement par `prisma migrate diff` castait
directement chaque valeur `category` existante (ancien enum à 18
valeurs) vers le nouvel enum à 7 valeurs — échoue pour toute ligne déjà
seedée, puisqu'aucune ancienne valeur n'existe dans le nouvel enum.
En local ça passait inaperçu (reset complet sur une base vide), mais en
production (données déjà seedées) la migration échoue avec "invalid
input value for enum".

Réécrite pour ajouter les nouvelles colonnes avec une valeur par défaut
sûre (aucun cast des données existantes), puis les substituer aux
anciennes — même logique que les défauts `@default(...)` déjà
documentés dans schema.prisma : seedReferenceData() (relancée à chaque
démarrage du conteneur, voir apps/api/Dockerfile) corrige tout de suite
après la vraie catégorie/sous-catégorie de chaque ligne.

Ajoute aussi un DROP TYPE IF EXISTS défensif : une tentative précédente
de cette migration laisse le type IngredientSubcategory orphelin (son
CREATE TYPE s'exécute hors de la transaction qui échoue plus loin), une
nouvelle tentative sans ce garde-fou échouerait différemment ("type
already exists").

Vérifiée en rejouant l'historique complet des migrations sur une base
de test jetable, avec des lignes portant les anciennes valeurs d'enum
insérées à la main pour reproduire exactement l'échec signalé — la
version corrigée s'applique proprement et préserve les id existants
(donc toute vraie ligne RecipeIngredient qui y référence).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 12:47:14 +02:00
..
features feat(recipes): catalogue v2 - visibilité, favoris, régimes et catalogue d'ingrédients exhaustif 2026-08-18 09:29:11 +02:00
prisma fix(migrations): rend la migration ingredient_taxonomy_rework safe sur des données existantes 2026-08-18 12:47:14 +02:00
src feat(recipes): remplace les emoji par des icônes SVG épurées 2026-08-18 12:30:25 +02:00
test feat(recipes): refonte de la catégorisation des ingrédients façon rayons de supermarché 2026-08-18 11:47:47 +02:00
test-support Tests: dates fixes pour Planning + refonte des radio/checkbox 2026-08-17 22:36:02 +02:00
.env.example API: signup/login (profile creation + JWT auth) (#4) 2026-08-16 13:45:23 +02:00
.mocharc.json API: signup/login (profile creation + JWT auth) (#4) 2026-08-16 13:45:23 +02:00
cucumber.cjs Add Cucumber for readable BDD-style integration tests (apps/api) (#2) 2026-08-16 11:11:38 +02:00
Dockerfile fix(api): seed reference data (diets/allergies) on container start 2026-08-18 00:04:14 +02:00
package.json API: GET /planning?date= remplace GET /planning/current (step 2/4) 2026-08-17 14:17:46 +02:00
tsconfig.json Scaffold generic pnpm monorepo (api + web + shared) (#1) 2026-08-16 10:55:13 +02:00