Migrațiile de baze de date (schimbări de schemă) sunt una dintre părțile mai dificile ale CI/CD — spre deosebire de codul aplicației stateless, bazele de date dețin stare care nu poate fi pur și simplu înlocuită sau revocată. Gestionarea migrațiilor cu grijă (automatizare, compatibilitate inversă, modele sigure) este esențială pentru implementări fiabile.
De ce migrațiile de baze de date sunt dificile
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.
