Adatbázis-migráció és séma verziózás
Mi az adatbázis-migráció, hogyan verziózd a schema változásait, és hogyan kerüld el, hogy production deploy közben inkompatibilis legyen a régi és új kód?
Röviden
A migráció reprodukálható, verziózott séma- vagy adatváltoztatás. Ahelyett, hogy kézzel kattintgatnál production adatbázisban, a változás kódhoz hasonlóan reviewzható és környezetek között megismételhető.
Mit jelent a adatbázis-migráció és séma verziózás?
A migráció reprodukálható, verziózott séma- vagy adatváltoztatás. Ahelyett, hogy kézzel kattintgatnál production adatbázisban, a változás kódhoz hasonlóan reviewzható és környezetek között megismételhető.
Biztonságos schema változás
01
Expand
02
Backfill
03
App átáll
04
Observe
05
Contract
Hogyan működik a gyakorlatban?
Egyszerű migráció lehet új tábla vagy index létrehozása. Breaking változásnál gyakran expand-and-contract stratégia kell: először add hozzá az új struktúrát kompatibilisen, migráld/backfill az adatot, állítsd át a kódot, majd később távolítsd el a régit.
- Migráció legyen determinisztikus és forráskezelésben követhető.
- Nagy index vagy backfill production lock/terhelés hatását tervezni kell.
- Rollback nem mindig egyszerű, főleg adatvesztő változásnál.
- App és schema deploy sorrendje legyen backward-compatible, ahol lehet.
Gyakorlati fejlesztői szemlélet
Release előtt staging vagy clone adatbázison gyakorold a migrációt reális adatmennyiséggel. A `ALTER TABLE` ami tíz soron azonnali, százmillió soron teljesen más operációs kockázat lehet.
Gyakori hibák és félreértések
- Production SQL editort migrációs rendszer helyett használni rutinból.
- Destruktív oszloptörlést ugyanabban a pillanatban deployolni, amikor a régi app verzió még hivatkozhat rá.
- Adatmigráció futási idejét lokális kis adaton megbecsülni.
Források és szabványok
A technikai részletekhez elsődleges szabványokat és karbantartott hivatalos dokumentációt használok. Frameworkök, böngészők és webes API-k idővel változhatnak, ezért implementálás előtt mindig ellenőrizd az aktuális dokumentációt is.
Kapcsolódó ByBence Academy