corentin_wakdo/docs/adr/0008-makefile-vers-compose-migrate.md
Imugiii 035129d7be
All checks were successful
CI / js-tests (pull_request) Successful in 23s
CI / secret-scan (pull_request) Successful in 10s
CI / php-lint (pull_request) Successful in 23s
CI / static-tests (pull_request) Successful in 45s
CI / auto-merge (pull_request) Successful in 4s
docs(adr): registre des decisions d'architecture (9 ADR)
docs/adr/ : une fiche courte (contexte / decision / consequences) par decision
structurante, + un index et un modele de fiche.

0001 PHP from scratch sans Composer ; 0002 back-office MVC rendu serveur ;
0003 stock en % + dispo calculee RG-T21 ; 0004 PIN d'action sensible + audit en
transaction ; 0005 throttle PIN separe du login (RG-T22) ; 0006 HTTP 409 vs 422 ;
0007 effacement RGPD par anonymisation (tombstone) ; 0008 Makefile -> docker compose
(wakdo-migrate) ; 0009 compose standalone + prod gitignore.

Deuxieme PR du jeu de documentation. Resout le renvoi docs/adr/ d'ARCHITECTURE.md.
2026-06-17 13:50:27 +00:00

1.3 KiB

ADR-0008 — Du Makefile a docker compose up (service wakdo-migrate)

  • Statut : Accepte
  • Date : 2026-06-17

Contexte

Le critere Cr 7.c.4 demande de lancer la stack complete en une commande. C'etait make init. Mais le Makefile portait surtout des cibles mortes/trompeuses (test/lint annoncaient "pas implemente" alors que les tests tournent) ; sa seule cible porteuse, init, existait parce que docker compose up seul n'applique pas les migrations. Le critere parle d'un resultat, pas de make.

Decision

Migration + seed deplaces dans la stack : un service one-shot wakdo-migrate (image mariadb, db/migrate-container.sh par le reseau) applique db/migrations/*.sql (suivi schema_migrations) puis db/seeds/*.sql (suivi seeds_applied), idempotents. wakdo-app/wakdo-web depends_on: service_completed_successfully. Makefile supprime. docker compose up devient l'unique commande.

Consequences

  • (+) Commande universelle, sans dependance a l'outil make sur l'hote.
  • (+) Comportement = doc (l'ancien make init ne seedait meme pas).
  • (-) Migrations/seed evalues a chaque up (cout negligeable, suivi -> re-run sans effet).
  • (-) Base deja seedee avant le suivi : back-filler seeds_applied avant le 1er up.
  • db/migrate.sh (hote) conserve pour l'usage manuel. Detail : journal 2026-06-17.