Diff schema SQL
Confronta due schemi CREATE TABLE e genera la migrazione ALTER TABLE tra di loro.
Diff schema SQL
Incolla il tuo schema attuale a sinistra e lo schema che vuoi raggiungere a destra, e questo strumento ti scrive la migrazione tra di loro. Confronta le istruzioni CREATE TABLE tabella per tabella e colonna per colonna, quindi genera le istruzioni CREATE TABLE, DROP TABLE, ADD COLUMN, DROP COLUMN e ALTER COLUMN necessarie per trasformare il primo schema nel secondo — utile per esaminare un cambiamento di schema, scrivere un file di migrazione a mano, o verificare cosa ha effettivamente fatto uno strumento di generazione dello schema.
Scegli un database dall'opzione Database — PostgreSQL, MySQL o SQLite — poiché ognuno scrive i cambiamenti di colonna diversamente: PostgreSQL usa ALTER COLUMN ... TYPE e SET/DROP NOT NULL, MySQL combina il tipo e la nullabilità in un'unica istruzione MODIFY COLUMN, e SQLite non ha ALTER COLUMN affatto, quindi questi casi sono annotati come richiedenti una ricostruzione della tabella. Includi le modifiche agli indici per differenziare anche le istruzioni CREATE INDEX, racchiudi l'output in una transazione, e attiva l'opzione di ripristino per una seconda migrazione inversa aggiunta sotto la prima.
Eliminare una tabella o una colonna, restringere un tipo, o aggiungere NOT NULL può scartare i dati o fallire su righe che non si adattano al nuovo vincolo. Con « Avvisa su perdita di dati » attivato, ogni passaggio di questo tipo è contrassegnato nell'output in modo che sia facile da individuare prima di eseguire qualsiasi cosa su un database reale. Le tabelle che si referenziano reciprocamente tramite una chiave esterna vengono create e eliminate nell'ordine delle dipendenze, quindi lo script non fallisce su una tabella di cui aveva bisogno per primo.
Tutto viene eseguito localmente nel tuo browser — i tuoi schemi non vengono mai caricati da nessuna parte, quindi è sicuro incollare definizioni di tabella reali da un database privato. Copia la migrazione, scaricala come file .txt, o rimanda l'output all'input per continuare a perfezionarlo.