Pro programátory

Jak porovnávám SQL skripty - bez ztráty dat a nervů

29. prosince 2025
8 min čtení
SQLdatabázemigrationsschema

Změny v databázi jsou vždycky trochu stresující. Jedna chyba v migration scriptu a máš problém. Proto si dávám záležet na porovnávání SQL změn před tím, než to pustím na produkci.

S čím se setkávám

Schema migrations:

  • Přidání tabulky
  • Změna typu sloupce
  • Nové indexy

Data migrations:

  • UPDATE, INSERT pro transformaci dat

Stored procedures/functions:

  • Změny v business logice

Views a triggers:

  • Změny v odvozených datech

Permissions:

  • GRANT, REVOKE statements

Co používám

Pro SQL Server:

  • Redgate SQL Compare - porovná schémata mezi databázemi

Pro obecné použití:

  • Liquibase - verzované changesets
  • Flyway - migration framework s diff

Pro MySQL:

  • mysqldiff - command-line porovnání

Pro PostgreSQL:

  • pg_dump + diff - klasika

Migration scripty - jak na to

  1. Porovnej scripty mezi verzemi - co se změnilo?
  2. Ověř idempotenci - může běžet vícekrát bez problému?
  3. Zkontroluj rollback - vrátí změny správně?
  4. Testuj na kopii prod dat - ne na prázdné DB!

Co může rozbít aplikaci

Breaking changes:

  • Odebrání tabulky/sloupce - aplikace spadne
  • Změna typu sloupce - vyžaduje data migration + update aplikace
  • Odebrání indexu - výkon do háje
  • Změna FK - integrita dat
  • Změna permissions - aplikace ztratí přístup

Na tohle si dávám extra pozor.

Verzování databáze

  • Migration scripty v Gitu, společně s kódem
  • Migration tool trackuje co už bylo aplikováno
  • Tagy synchronně s release aplikace
  • Rollback script pro každou migration

Testování změn

Co dělám před každým deployem:

  • Testuji na staging s produkčním objemem dat (ne na prázdné DB!)
  • Měřím performance impact indexů a schema změn
  • Validuji integritu dat po migraci
  • Testuji rollback procedure
  • Simuluji failure scenarios

Production deployment

  1. Backup - vždycky před migrací
  2. Maintenance window - ideálně když je nízký traffic
  3. Monitoring - performance a error logy během i po
  4. Rollback plán - připravený na rychlou recovery
  5. Komunikace - tým a stakeholdeři vědí co se děje

Database změny jsou stresující, ale s procesem to jde. Hlavně testovat, testovat, testovat.

Potřebuješ rychle porovnat dva SQL scripty? Hoď je do Code Diff a hned vidíš rozdíly.

Vyzkoušejte PorovnejText.cz zdarma

Nejrychlejší český nástroj pro porovnání textů. Vše probíhá ve vašem prohlížeči, žádná registrace není potřeba.

Porovnat texty nyní →