ADR-0007 — MariaDB en prod, SQLite in-memory en test
| Statut | Accepté |
|---|---|
| Date | 2025-05-15 |
| Auteurs | Julien Jorry |
Contexte
En prod, on a besoin de vues, triggers, PESSIMISTIC_WRITE, fulltext, et de la robustesse MariaDB. En test, on veut une suite qui tourne en < 30s sans dépendance externe, pour ne pas freiner le TDD.
Décision
MariaDB en prod et staging. SQLite in-memory (sqlite::memory:) en test PHPUnit. Migrations Doctrine maintenues portables. Les triggers / requêtes MariaDB-only sont testés en intégration sur DB MariaDB dockerisée.
Conséquences positives
- Suite de tests rapide (< 30s sur Pi 4).
- Pas de DB de test à provisionner sur dev local.
- CI rapide.
Conséquences négatives
- Divergences SQL possibles entre SQLite et MariaDB (gérées par schema:validate + integration tests).
- Pas de test des triggers en unit.
Alternatives examinées
- MariaDB testcontainers — rejeté : trop lourd pour dev solo.
- PostgreSQL — rejeté : divergences importantes avec MariaDB.
- H2 / hsqldb — non disponibles en PHP.
Références
config/packages/test/doctrine.yaml- tests.html