SQL-Schema-Diff
Vergleichen Sie zwei CREATE TABLE-Schemas und generieren Sie die ALTER TABLE-Migration zwischen ihnen.
SQL-Schema-Diff
Fügen Sie Ihr aktuelles Schema auf der linken Seite und das Schema, das Sie erreichen möchten, auf der rechten Seite ein, und dieses Tool schreibt die Migration zwischen ihnen. Es vergleicht CREATE TABLE-Anweisungen Tabelle für Tabelle und Spalte für Spalte, generiert dann die CREATE TABLE-, DROP TABLE-, ADD COLUMN-, DROP COLUMN- und ALTER COLUMN-Anweisungen, die benötigt werden, um das erste Schema in das zweite zu verwandeln — nützlich zum Überprüfen einer Schemaänderung, zum Schreiben einer Migrationsdatei von Hand oder zum Überprüfen, was ein Schemagenerator tatsächlich getan hat.
Wählen Sie eine Datenbank aus der Option Datenbank aus — PostgreSQL, MySQL oder SQLite — da jede Spaltenänderungen unterschiedlich schreibt: PostgreSQL verwendet ALTER COLUMN ... TYPE und SET/DROP NOT NULL, MySQL kombiniert Typ und Nullability in eine einzige MODIFY COLUMN-Anweisung, und SQLite hat überhaupt kein ALTER COLUMN, daher werden diese Fälle als needing a table rebuild vermerkt. Aktivieren Sie Indexänderungen, um auch CREATE INDEX-Anweisungen zu vergleichen, wrappen Sie die Ausgabe in eine Transaktion, und schalten Sie die Rollback-Option ein, um eine zweite, umgekehrte Migration unterhalb der ersten zu erhalten.
Das Löschen einer Tabelle oder Spalte, das Einengen eines Typs oder das Hinzufügen von NOT NULL kann Daten wegwerfen oder gegen Zeilen fehlschlagen, die nicht in die neue Einschränkung passen. Mit "Vor Datenverlust warnen" aktiviert, wird jeder solche Schritt in der Ausgabe markiert, damit es einfach ist, potenzielle Probleme zu erkennen, bevor etwas gegen eine echte Datenbank läuft. Tabellen, die sich gegenseitig durch einen Fremdschlüssel referenzieren, werden in Abhängigkeitsreihenfolge erstellt und gelöscht, sodass das Skript nicht auf eine Tabelle fehlschlägt, die es zuerst benötigte.
Alles läuft lokal in Ihrem Browser — Ihre Schemas werden nirgendwo hochgeladen, daher ist es sicher, echte Tabellendefinitionen aus einer privaten Datenbank einzufügen. Kopieren Sie die Migration, laden Sie sie als .txt-Datei herunter, oder senden Sie die Ausgabe zurück in die Eingabe, um sie weiter zu verfeinern.