Preskoči na vsebino

Primerjava SQL shem

Primerjaj dve CREATE TABLE shemi in ustvari ALTER TABLE migracijsko stran med njima.

Vhod
Ciljna shema (CREATE TABLE)
Izhod

Primerjava SQL shem

Prilepi trenutno shemo na levi in shemo, ki jo želiš doseči, na desni, in to orodje napiše migracijsko stran med njima. Primerjava CREATE TABLE izjave tabelo po tabelo in stolpec po stolpec, nato generira CREATE TABLE, DROP TABLE, ADD COLUMN, DROP COLUMN in ALTER COLUMN izjave, potrebne za pretvorbo prve sheme v drugo — koristno za pregled spremembe sheme, ročno pisanje migracijske datoteke ali preverjanje, kaj je orodje za generiranje shem res storilo.

Izberi podatkovno bazo iz možnosti Database — PostgreSQL, MySQL ali SQLite — saj vsaka drugače piše spremembe stolpcev: PostgreSQL uporablja ALTER COLUMN ... TYPE in SET/DROP NOT NULL, MySQL kombinira tip in ničelnost v enega MODIFY COLUMN stavka, SQLite pa nima sploh ALTER COLUMN, zato so ti primeri označeni kot potrebujući obnovo tabele. Vključi spremembe indeksov, da primerjač tudi CREATE INDEX izjave, rezultat zaprej v transakcijo in vključi možnost povratne migracije za drugo, obratno migracijsko stran spodaj prve.

Brisanje tabele ali stolpca, zožitev tipa ali dodajanje NOT NULL lahko izbriše podatke ali ne uspe proti vrsticam, ki se ne ujemajo z novo omejitvijo. Z možnostjo "Opozori na izgubo podatkov" vključeno je vsak tak korak označen v rezultatu, da je enostavno viden pred izvajanjem česar koli proti pravi podatkovni bazi. Tabele, ki se med seboj nanašajo preko tuje ključa, se ustvarijo in izbrišejo v vrstnem redu odvisnosti, zato se skripta ne bo neuspešno izvedla, ker joj je bila potrebna tabela prej.

Vse se izvršava lokalno v vašem brskalniku — vaše sheme se nikoli ne naložijo nikamor, zato je varno prilepiti prave definicije tabel iz zasebne podatkovne baze. Kopiraj migracijsko stran, jo prenesi kot datoteko .txt, ali pošlji rezultat nazaj v vnos, da nadaljuješ z izboljšanjem.

FAQ

Kateri SQL dialekti so podprti?
PostgreSQL, MySQL in SQLite. Izberi enega iz možnosti Database — vsak drugače piše ALTER COLUMN, index in narekovaj sintakso.
Ali lahko zazna spremembe, ki bi lahko izgubile podatke?
Da. Izbrisane tabele, izbrisani stolpci, stolpci, ki so zoženi na manjši tip, in stolpci, narejeni NOT NULL, so vsi označeni s komentarjem opozorila, ko je možnost "Opozori na izgubo podatkov" vključena.
Ali upravlja tuje ključe in odvisnosti?
Da. Ko ena tabela sklepuje drugo, se CREATE TABLE izjave razporedijo tako, da referencirani tabelo pride prva, in DROP TABLE izjave se razporedijo tako, da se tabele, ki sklepujejo, izbrišejo pred tabelami, na katere so odvisne.
Katero SQL sintakso bere?
Standardne CREATE TABLE izjave s tipizirani stolpci, NOT NULL, PRIMARY KEY in REFERENCES, ter samostojne CREATE INDEX izjave. Izjave, ki jih ne prepozna (vstavi, drug DDL), se preskoči namesto zavrnitve.
Ali se moje sheme naložijo negdje?
Ne. Primerjava shem in generiranje migracije se izvršata popolnoma v vašem brskalniku — nič od tega, kar tu prilepite, se ne pošlje na strežnik.