From 68f072ef463d5ed6b438716a1b309317b9e0451b Mon Sep 17 00:00:00 2001 From: matthieu Date: Wed, 22 Apr 2026 15:51:32 +0200 Subject: [PATCH] fix(audit-log) : exclut audit_log du schema_filter Doctrine La table audit_log n'a pas d'entite ORM (ecriture DBAL brut via AuditLogWriter pour eviter la recursion du listener). doctrine:schema:update la considerait donc comme orpheline et la droppait systematiquement, ce qui cassait la base de test apres chaque make test-db-setup (DROP TABLE audit_log genere par schema:update --force, apres les migrations qui l'avaient creee). Un schema_filter en negative lookahead sur la connexion default exclut la table de toute comparaison de schema (schema:update, schema:validate, diff de migrations). La creation / suppression reste pilotee exclusivement par la migration Version20260420202749. Co-Authored-By: Claude Opus 4.7 (1M context) --- config/packages/doctrine.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml index fddef1e..ab7b09e 100644 --- a/config/packages/doctrine.yaml +++ b/config/packages/doctrine.yaml @@ -8,6 +8,16 @@ doctrine: default: url: '%env(resolve:DATABASE_URL)%' profiling_collect_backtrace: '%kernel.debug%' + # Exclut `audit_log` de toute operation de comparaison de schema + # (doctrine:schema:update, schema:validate, diff de migrations...). + # Cette table n'a volontairement aucune entite mappee : elle est + # append-only via DBAL brut (AuditLogWriter) pour eviter la + # recursion du listener Doctrine. Sans ce filtre, schema:update + # la considere comme "orpheline" et genere un `DROP TABLE + # audit_log` qui casse la base de test apres chaque + # `make test-db-setup`. La creation / suppression de la table + # reste pilotee par les migrations (cf. Version20260420202749). + schema_filter: '~^(?!audit_log$).+~' audit: url: '%env(resolve:DATABASE_URL)%' orm: