Les migrations de base de données (modifications de schéma) sont l'une des parties les plus délicates de la CI/CD — contrairement au code d'application sans état, les bases de données contiennent un état qui ne peut pas simplement être remplacé ou annulé. Gérer les migrations avec soin (automatisation, compatibilité rétroactive, modèles sûrs) est essentiel pour des déploiements fiables.
Pourquoi c'est important
App code is stateless (replace it, roll back freely). DATABASES hold STATE:
→ can't just "roll back" a migration that dropped a column or transformed data
(the data may be gone) → rollbacks are risky/impossible for destructive changes
→ during deployment, OLD and NEW app code may run SIMULTANEOUSLY (rolling deploy) —
both must work with the database schema at that moment
→ Schema changes need careful coordination with code deployment.
