Podatkovne migracije (spremembe sheme) so eden najbolj zapletenih delov CI/CD — za razliko od brez stanja aplikacijske kode imajo podatkovne baze stanje, ki ga ne moremo preprosto zamenjati ali povrniti. Pazljivo ravnanje s migracijah (avtomatizacija, nazadna kompatibilnost, varni vzorci) je bistvenega pomena za zanesljive distribucije.
Zakaj so podatkovne migracije težavne
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.
