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

26 lines
1.3 KiB
Markdown

# 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.