corentin_wakdo/db
Imugiii b3521f7a56
All checks were successful
CI / secret-scan (push) Successful in 18s
CI / js-tests (pull_request) Successful in 38s
CI / php-lint (push) Successful in 42s
CI / static-tests (push) Successful in 1m29s
CI / js-tests (push) Successful in 45s
CI / secret-scan (pull_request) Successful in 17s
CI / php-lint (pull_request) Successful in 40s
CI / static-tests (pull_request) Successful in 1m10s
feat(borne): menu Maxi agrandit la boisson en 50cl + transport explicite du format
Seed 0006 lie chaque soda fontaine 30cl a sa variante 50cl via
maxi_variant_product_id : en menu Maxi, resolveSelections substitue la
boisson vers la 50cl (meme mecanique que l'accompagnement Grande Frite),
sans code serveur. Les boissons en bouteille (sans variante) restent en
taille standard, le surcout Maxi etant porte par le menu.

La borne transporte desormais le format Normal/Maxi explicitement
(buildMenuCartItem) au lieu de l'inferer de supplement_cents>0 (faux
negatif si maxi==normal) ; checkout.js lit cartItem.format avec repli
historique pour les paniers serialises. Commentaire migration 0007
corrige (la substitution Maxi de la boisson est desormais voulue).

Tests : OrderRepositoryTest (boisson Maxi -> 50cl + bouteille inchangee),
checkout/composer-slots (format transporte). Seed valide idempotent sur
base jetable (5 sodas lies, frites intactes, bouteilles NULL).
2026-06-24 08:57:53 +00:00
..
init fix(db): moindre privilege pour le user applicatif (drop GRANT ALL) (#24) 2026-06-16 14:19:58 +02:00
migrations feat(borne): menu Maxi agrandit la boisson en 50cl + transport explicite du format 2026-06-24 08:57:53 +00:00
seeds feat(borne): menu Maxi agrandit la boisson en 50cl + transport explicite du format 2026-06-24 08:57:53 +00:00
migrate-container.sh chore: remplace le Makefile par un service compose wakdo-migrate (migrate + seed idempotents) (#40) 2026-06-17 15:07:05 +02:00
migrate.sh chore: remplace le Makefile par un service compose wakdo-migrate (migrate + seed idempotents) (#40) 2026-06-17 15:07:05 +02:00
README.md chore: remplace le Makefile par un service compose wakdo-migrate (migrate + seed idempotents) (#40) 2026-06-17 15:07:05 +02:00
seed.sh chore: remplace le Makefile par un service compose wakdo-migrate (migrate + seed idempotents) (#40) 2026-06-17 15:07:05 +02:00

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 / USE dans 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_rate en pour-mille, service_day NON 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.