Import databáze je zvláštní disciplína. Člověk klikne, něco proběhne, systém se tváří klidně a za chvíli zjistí, že část světa není tam, kde měla být. Tiché chyby jsou nejhorší.

Neřvou. Jen škodí.

Nejhorší chyba je ta, která mlčí

Když systém spadne s jasnou chybou, člověk aspoň ví, že je problém. Nepříjemné, ale poctivé. Horší je, když se všechno tváří úspěšně a chyba se projeví až později. Chybí záznamy, nesedí znaky, zmizí vazby, něco se načte jinak.

Tiché chyby jsou zákeřné právě tím, že dávají falešný klid. Import dokončen. Hotovo. Jenže hotovo neznamená správně. To jsem se naučil poměrně důrazně. A párkrát i slovníkem, který se na blog úplně nehodí.

Data mají vztahy

Databáze není jen tabulka s řádky. Jsou tam vazby, identifikátory, kategorie, fotky, uživatelé, stavy, data vytvoření, publikace, pořadí. Když se při importu něco posune, může se rozbít část, která na první pohled vůbec nesouvisí.

Proto nestačí zkontrolovat, že počet řádků nějak sedí. Je potřeba ověřit, že články mají kategorie, fotky patří ke správným galeriím, profily mají správné stavy a web skutečně zobrazuje to, co má. Data nejsou pytel brambor. Mají strukturu.

Záloha je začátek, ne formalita

Rozbitý import člověka velmi rychle naučí pokoru k zálohám. Záloha před změnou není zbytečné zdržení. Je to možnost vrátit se z místa, kde už se nedá rozumně nadávat ani programovat.

Důležitá je i ověřená záloha. Soubor, který existuje, ještě nemusí být použitelný. Ideálně vím, odkud je, kdy vznikl, co obsahuje a jak se obnovuje. Záloha, kterou neumím vrátit, je jen uklidňující dekorace.

Kontrola musí být konkrétní

Po importu nechci jen pocit, že to asi prošlo. Chci kontrolní body. Náhodné články, konkrétní uživatelé, počty fotek, vybrané kategorie, přihlášení, formuláře, administraci, veřejný výstup. Čím konkrétnější kontrola, tím menší prostor pro překvapení.

Tohle platí i pro menší změny. Když se upraví importní skript, nestačí otestovat jednu ideální položku. Je potřeba zkusit i divné znaky, prázdná pole, staré záznamy a položky, které vypadají jako výjimka. Právě výjimky rády rozhodují o večeru.

Trpělivost je technická dovednost

Rozbité importy mě naučily, že spěch je drahý. Nejrychlejší cesta je často pomalý postup: záloha, test, import, kontrola, porovnání, teprve potom ostrý krok. Vypadá to nudně, ale funguje.

Tiché chyby mi zase připomněly, že technika není jen o kódu. Je i o pozornosti. O tom nepředpokládat, že když systém mlčí, je všechno dobře. Někdy mlčí jen proto, že ještě nevíme, kde se máme podívat.

Shrnutí pro blog

Pointa: Rozbité importy mě naučily kontrolovat výsledek, ne jen hlášku o dokončení. Důležité jsou zálohy, testy, porovnání dat a klidný postup bez improvizace.