Preskoči na sadržaj

Usporedba SQL shema

Usporedi dvije CREATE TABLE sheme i generiraj ALTER TABLE migraciju između njih.

Unos
Ciljna shema (CREATE TABLE)
Rezultat

Usporedba SQL shema

Uklji trenutnu shemu s lijeve strane i shemu koju želiš dosegnuti s desne, te ovaj alat napiše migraciju između njih. Uspoređuje CREATE TABLE iskaze tablicu po tablicu i stupac po stupac, zatim generira CREATE TABLE, DROP TABLE, ADD COLUMN, DROP COLUMN i ALTER COLUMN iskaze potrebne da pretvoriš prvu shemu u drugu — korisno za pregled promjene sheme, ručno pisanje datoteke migracije ili provjeru što je alat za generiranje sheme stvarno napravio.

Odaberi bazu podataka iz opcije Database — PostgreSQL, MySQL ili SQLite — jer svaki piše promjene stupaca različito: PostgreSQL koristi ALTER COLUMN ... TYPE i SET/DROP NOT NULL, MySQL kombinira tip i nullabilnost u jedan MODIFY COLUMN iskaz, a SQLite nema uopće ALTER COLUMN, pa se ta slučajeva bilježe kao trebajući obnovu tablice. Uključi promjene indeksa kako bi usporedio i CREATE INDEX iskaze, zapakuj izlaz u transakciju, te uključi opciju povratne migracije za drugu, obrnutu migraciju dodanu ispod prve.

Brisanje tablice ili stupca, sužavanje tipa ili dodavanje NOT NULL može izbrisati podatke ili neuspješno napasti redove koji ne stanu u novo ograničenje. S opcijom "Upozori na gubitak podataka" uključenom, svaki takav korak je označen u izlazu kako bi bio lako vidljiv prije pokretanja bilo čega protiv prave baze podataka. Tablice koje se međusobno referenciraju kroz vanjski ključ se stvaraju i brišu redoslijeda ovisnosti, pa se skripta ne neće neuspješno izvršiti jer joj je trebala tablica prije.

Sve se izvršava lokalno u vašem pregledniku — vaše sheme se nikad ne učitavaju bilo gdje, pa je sigurno zalijepiti prave definicije tablica iz privatne baze podataka. Kopiraj migraciju, preuzmi je kao .txt datoteku, ili pošalji izlaz natrag u ulaz kako bi nastavio usavršavati je.

FAQ

Koja SQL dijalekta su podržana?
PostgreSQL, MySQL i SQLite. Odaberi jedan iz opcije Database — svaki piše ALTER COLUMN, index i quoting sintaksu drugačije.
Može li detektovati promjene koje mogu izgubiti podatke?
Da. Obrisane tablice, obrisani stupci, stupci suženi na manji tip i stupci napravljeni NOT NULL su svi označeni s upozorenjskim komentarom kada je opcija "Upozori na gubitak podataka" uključena.
Bavi se vanjskim ključevima i zavisnostima?
Da. Kada jedna tablica referencira drugu, CREATE TABLE iskazi se redoslijede tako da referencirana tablica dolazi prva, i DROP TABLE iskazi se redoslijede tako da se tablice koje referenciraju brišu prije tablica na koje zavise.
Koju SQL sintaksu čita?
Standardne CREATE TABLE iskaze s tipiziranim stupcima, NOT NULL, PRIMARY KEY i REFERENCES, plus samostalne CREATE INDEX iskaze. Iskaze koje ne prepoznaje (inserts, drugi DDL) se preskaču umjesto odbijanja.
Učitavaju li se moje sheme negdje?
Ne. Usporedba shema i generiranje migracije se izvršava potpuno u vašem pregledniku — ništa što ovdje zalijepite se ne pošalje na server.