Ugrás a tartalomhoz

SQL-sémaeltérés

Két CREATE TABLE séma összevetése és a közöttük lévő ALTER TABLE migráció generálása.

Bemenet
Céladatbázis-séma (CREATE TABLE)
Kimenet

SQL-sémaeltérés

Illesszen be az aktuális sémát a bal oldalra, és a sémát, amelyet el akar érni, a jobb oldalra, és ez az eszköz a közöttük lévő migrációt írja. A CREATE TABLE utasításokat táblánként és oszloponként hasonlítja össze, majd a CREATE TABLE, DROP TABLE, ADD COLUMN, DROP COLUMN és ALTER COLUMN utasításokat generálja, amelyek szükségesek az első séma másodikba való átalakításához — hasznos egy sémamódosítás áttekintésére, migrációs fájl kézi írásához vagy egy sémágenerálási eszköz által végzett munka ellenőrzéséhez.

Válasszon egy adatbázist az Adatbázis lehetőség közül — PostgreSQL, MySQL vagy SQLite — mivel mindegyik eltérően írja az oszlopok módosításait: a PostgreSQL az ALTER COLUMN... TYPE és SET/DROP NOT NULL, a MySQL az egyes MODIFY COLUMN utasításba kombinálódik, és az SQLite-nak egyáltalán nincs ALTER COLUMN, így ezeket az eseteket táblaátépítésként jelölik meg. Foglalja be az indexváltozásokat a CREATE INDEX utasítások diffléséhez, burkolja a kimenetet egy tranzakcióba, és kapcsolja be a rollback lehetőséget a második, fordított migrációhoz az első alatt.

A tábla vagy oszlop elvetése, egy típus szűkítése vagy NOT NULL hozzáadása adatokat veszíthet vagy meghibásodhat az új megkötéshez nem illő sorokat tartalmazó sorokkal szemben. Az "Adatvesztési figyelmeztetés" bekapcsolásával minden ilyen lépés meg van jelölve a kimenetben, így könnyen felismerhető a valós adatbázissal szemben futtatás előtt. Az egymást idegen kulccsal referáló táblák függőségi sorrendben jönnek létre és esnek el, így a parancsfájl nem hibásodik meg egy szükséges táblán.

Minden helyileg fut a böngészőben — a sémáit nem töltik fel sehová, így biztonságos valódi táblákban felsorolt definíciókat egy privát adatbázisból beilleszteni. Másolja a migrációt, töltse le .txt fájlként, vagy küldje vissza a kimenetet a bemenetbe, hogy továbbra is finomítsa.

Gyakori kérdések

Mely SQL dialektusok támogatottak?
PostgreSQL, MySQL és SQLite. Válasszon egyet az Adatbázis lehetőség közül — mindegyik eltérően írja az ALTER COLUMN, az indexet és az idézési szintaxist.
Meg tudja-e észlelni az adatvesztéshez vezető változásokat?
Igen. Az elvetett táblák, az elvetett oszlopok, az egy kisebb típusra szűkített oszlopok és a NOT NULL-ként készülő oszlopok mind figyelmeztető megjegyzésekkel vannak megjelölve, amikor az "Adatvesztési figyelmeztetés" be van kapcsolva.
Kezeli-e az idegen kulcs függőségeket?
Igen. Ha az egyik tábla egy másikra hivatkozik, a CREATE TABLE utasítások sorrendje úgy van beállítva, hogy a hivatkozott tábla először jöjjön, a DROP TABLE utasítások pedig úgy, hogy a hivatkozó táblák az általuk függő táblák előtt lejjebb kerüljenek.
Milyen SQL szintaxist olvas be?
Standard CREATE TABLE utasítások bevezethető oszlopokkal, NOT NULL, PRIMARY KEY és REFERENCES, valamint önálló CREATE INDEX utasítások. Az azok által nem ismert utasítások (beszúrások, más DDL) kimaradnak, nem pedig elutasítva.
A sémákat valahova feltöltik?
Nem. A sémák összevetése és a migráció generálása teljes egészében a böngészőben zajlik — az ide beillesztett semmit sem küldik el egy szerverhez.