|
All checks were successful
CI / secret-scan (push) Successful in 14s
CI / php-lint (push) Successful in 32s
CI / static-tests (push) Successful in 1m17s
CI / js-tests (push) Successful in 40s
CI / secret-scan (pull_request) Successful in 13s
CI / php-lint (pull_request) Successful in 43s
CI / static-tests (pull_request) Successful in 1m19s
CI / js-tests (pull_request) Successful in 47s
Une taille de boisson est un produit a part entiere (modele identique a Moyenne Frite / Grande Frite) : nouvelle colonne product.base_product_id (self-FK ON DELETE CASCADE) groupe les variantes sous leur base, size_cl porte le volume. Les variantes sont masquees de la grille catalogue (availableForCatalogue ET findForCatalogue filtrent base_product_id IS NULL : une 50cl ne s'atteint que via le picker de taille de sa base, jamais en fiche autonome ni par lien direct). /api/products expose un tableau sizes[] par base, charge en une requete (sizesByBase, pas de N+1). Le picker borne (CSP-safe) resout la taille choisie en product_id ; le domaine commande facture par product_id, flux inchange (resolveLine), stock decremente via la recette propre de la variante. Migration 0007 + seed 0005 idempotents (verifies sur MariaDB reel : migration x2, seed x3, comptes stables, CASCADE confirme). Revue bmad-compliance : 1 must_fix (filtre findForCatalogue) corrige, mantras 92%. |
||
|---|---|---|
| .. | ||
| init | ||
| migrations | ||
| seeds | ||
| migrate-container.sh | ||
| migrate.sh | ||
| README.md | ||
| seed.sh | ||
Base de donnees - migrations & seeds
Transcription executable du MLD (docs/merise/mld.md, 21 tables) vers MariaDB 11.4.
Arborescence
db/
migrations/ migrations SQL versionnees, appliquees dans l'ordre lexicographique
0001_init_schema.sql schema initial : 21 tables, FK, CHECK, index (InnoDB, utf8mb4)
seeds/ donnees de demonstration (a venir : roles/permissions, allergenes, catalogue)
migrate.sh runner de migrations (idempotent)
Appliquer les migrations
bash db/migrate.sh # applique les migrations en attente
bash db/migrate.sh --status # liste l'etat sans rien appliquer
Le runner cible le conteneur wakdo-db et lit les identifiants dans .env
(DB_NAME, DB_ROOT_PASSWORD). Il maintient une table schema_migrations
(une ligne par fichier applique) : relancer ne rejoue que les nouvelles
migrations. La cible bash db/migrate.sh est destinee a appeler ce script.
Conventions
- Une migration = un fichier
NNNN_description.sql. Un fichier deja applique en commun n'est plus edite : on ajoute une nouvelle migration pour corriger. - Pas de
CREATE DATABASE/USEdans les fichiers : la base cible est choisie par le runner. - Le schema suit le MLD v0.2 a la lettre : montants en centimes (INT UNSIGNED),
vat_rateen pour-mille,service_dayNON materialise (calcule applicatif, decision D6), stock signe (survente), journaux append-only (stock_movement,audit_log). - Verification : le DDL a ete applique sur une instance MariaDB 11.4 reelle (21 tables, 28 FK, 22 CHECK) sans erreur avant integration.