Migrace – změna schématu bez ztráty dat
Jak přidat sloupec do tabulky, ve které už jsou skutečná data. Nejnebezpečnější rutinní operace, jakou budeš dělat.
13 minlekce 70/107
Po lekci umíš
- Víš, co migrace je a proč se nedělá ručně
- Umíš zadat bezpečnou změnu schématu
- Znáš tři změny, které mohou zničit data
Obsah lekce (4)
Schéma se změní vždycky. Za týden zjistíš, že rezervace potřebuje poznámku, a musíš přidat sloupec.
Dokud je databáze prázdná, je to triviální. Jakmile jsou v ní skutečná data, je to operace, u které se dá nenávratně ublížit.
Co je migrace
Zapsaný, spustitelný předpis pro změnu schématu. Ne kliknutí v nějakém nástroji – soubor, který je v Gitu a dá se spustit na jakékoliv kopii databáze.
Změna modelu
chci nový sloupec
Migrace
vznikne soubor
Lokálně
spustíš a ověříš
Naostro
spustí se při nasazení
Bezpečné a nebezpečné změny
Bezpečné
- Přidat nepovinný sloupec.
- Přidat novou tabulku.
- Přidat rejstřík pro rychlejší hledání.
- Rozšířit povolenou délku textu.
Nebezpečné
- Smazat sloupec – data v něm zmizí.
- Přejmenovat sloupec – aplikace ho přestane najít.
- Změnit typ – hodnoty se mohou nevejít.
- Přidat povinný sloupec do plné tabulky – co doplnit u starých řádků?
Jak to zadat
Změň schéma bezpečně
Jakákoliv změna tabulky, ve které už jsou data.
Potřebuju změnit schéma: [POPIŠ ZMĚNU] Než něco uděláš: 1. Řekni mi, jestli je ta změna bezpečná, nebo může ztratit data. 2. Když může, navrhni bezpečný postup po krocích. 3. Napiš, co se stane s existujícími řádky. 4. Řekni mi, jestli se změnou musí jít i změna v kódu aplikace – a jestli musí jít napřed, nebo až po ní. Pak vytvoř migraci. Spustíme ji nejdřív lokálně.
Bod 4 je ten, který lidi překvapí. Migrace a kód spolu souvisí a pořadí není libovolné.
Rutina, kterou se vyplatí dodržet
Záloha
U produkční databáze vždycky. Většina hostingových služeb ji umí udělat jedním kliknutím.
Lokálně
Spusť migraci u sebe, na kopii dat, která vypadají jako ta ostrá.
Zkontroluj
Aplikace funguje? Stará data jsou v pořádku?
Commit
Migrace patří do Gitu spolu s kódem, který ji potřebuje.
Naostro
Při nasazení. A hned potom zkontroluj, že aplikace běží.
Ve svém projektu přidej do jedné tabulky nepovinný sloupec – třeba poznamka.
Projdi celou rutinu: migrace, lokální spuštění, kontrola, commit. Zapiš si, kolik to trvalo.
Pak si zkus druhou verzi: nech si popsat (ne provést) postup, jak by se ten samý sloupec dělal povinný, kdyby v tabulce už bylo tisíc řádků.
Co si odnést
- Migrace je zapsaný předpis pro změnu schématu, ne ruční zásah.
- Přidávat je bezpečné, mazat, přejmenovávat a měnit typ ne.
- Povinný sloupec do plné tabulky vždy ve dvou krocích.
- Migrace, která už proběhla naostro, se neopravuje – přidá se nová.
Máš to za sebou?
Označ lekci jako hotovou, ať víš, kde jsi skončil. Nic se tím neuzamkne.
Další lekceDotazy a rychlostObsah aktualizován: 21. srpna 2026