Preskočiť na obsah

Porovnávač SQL schém

Porovnajte dve CREATE TABLE schémy a vygenerujte ALTER TABLE migráciu medzi nimi.

Vstup
Cieľová schéma (CREATE TABLE)
Výstup

Porovnávač SQL schém

Vložte svoju aktuálnu schému vľavo a schému, ktorú chcete dosiahnuť vpravo, a tento nástroj napíše migráciu medzi nimi. Porovnáva výroky CREATE TABLE tabuľku za tabuľkou a stĺpec za stĺpcom, potom generuje výroky CREATE TABLE, DROP TABLE, ADD COLUMN, DROP COLUMN a ALTER COLUMN potrebné na transformáciu prvej schémy do druhej — užitočné pri kontrole zmeny schémy, ručnom písaní migračného súboru alebo overovaní toho, čo skutočne urobil nástroj na generovanie schém.

Vyberte si databázu z možnosti Database — PostgreSQL, MySQL alebo SQLite — pretože každá píše zmeny stĺpcov inak: PostgreSQL používa ALTER COLUMN ... TYPE a SET/DROP NOT NULL, MySQL kombinuje typ a nullovateľnosť do jedného výroku MODIFY COLUMN, a SQLite vôbec nemá ALTER COLUMN, takže tieto prípady sú označené ako vyžadujúce prestavbu tabuľky. Zahrňte zmeny indexov aj na diff výroky CREATE INDEX, zabaliť výstup do transakcie a zapnúť možnosť vrátenia sa späť pre druhú migráciu v obrátenom poradí pripojenú pod prvou.

Padnutie tabuľky alebo stĺpca, zúženie typu alebo pridanie NOT NULL môže zahodzť údaje alebo skončiť s chybou oproti riadkom, ktoré sa nezmestia do nového obmedzenia. S možnosťou "Upozorniť na stratu údajov" zapnutou je každý takýto krok označený v útlesu, takže je ľahké ho spozorovať pred spustením čehokôvek proti reálnej databáze. Tabuľky, ktoré sa navzájom odkazujú cez cudzi kľúč, sú vytvorené a odstránené v poradí závislostí, takže skript neskončí s chybou na tabuľke, ktorú potreboval najskôr.

Všetko sa spúšťa lokálne vo vašom prehliadači — vaše schémy sa nikdy nikam nenahrávajú, takže je bezpečné vložiť skutočné definície tabuľiek z privátnej databázy. Skopírujte migráciu, stiahnite ju ako .txt súbor alebo pošlite výstup späť do vstupu, aby ste ho naďalej zdokonaľovali.

Časté otázky

Ktoré dialekty SQL sú podporované?
PostgreSQL, MySQL a SQLite. Vyberte si jeden z možnosti Database — každý píše syntaxu ALTER COLUMN, indexov a úvodzoviek inak.
Dokáže zistiť zmeny, ktoré by mohli spôsobiť stratu údajov?
Áno. Padnuté tabuľky, padnuté stĺpce, stĺpce zúžené na menší typ a stĺpce vytvorené NOT NULL sú všetky označené s varovaním pri komentári, keď je možnosť "Upozorniť na stratu údajov" zapnutá.
Spracovával cudzích kľúčov závislosti?
Áno. Keď jedna tabuľka odkazuje na druhú, výroky CREATE TABLE sú usporiadané tak, aby sa referencovaná tabuľka objavila ako prvá, a výroky DROP TABLE sú usporiadané tak, aby sa tabuľky referencujúce vymažú pred tabuľkami, na ktorých závisia.
Akú SQL syntaxu číta?
Štandardné výroky CREATE TABLE s typizovanými stĺpcami, NOT NULL, PRIMARY KEY a REFERENCES, plus samostatné výroky CREATE INDEX. Výroky, ktoré nerozpoznáva (inserts, ďalšie DDL), sa preskakujú skôr, ako sa odmietnú.
Sú moje schémy niekde nahrané?
Nie. Porovnávanie schém a generovanie migrácie sa spúšťa úplne vo vašom prehliadači — nič z toho, čo sem vložíte, sa neosiela na server.