SQL schema diff
Vergelijk twee CREATE TABLE-schema's en genereer de ALTER TABLE-migratie ertussen.
SQL schema diff
Plak uw huidige schema aan de linkerkant en het schema dat u wilt bereiken aan de rechterkant, en deze tool schrijft de migratie ertussen. Het vergelijkt CREATE TABLE-statements tabel voor tabel en kolom voor kolom, genereert vervolgens de CREATE TABLE-, DROP TABLE-, ADD COLUMN-, DROP COLUMN- en ALTER COLUMN-statements die nodig zijn om het eerste schema in het tweede om te zetten — handig voor het beoordelen van een schemawijziging, het handmatig schrijven van een migratiebestand of het controleren wat een schemagenerator werkelijk heeft gedaan.
Kies een database uit de optie Database — PostgreSQL, MySQL of SQLite — omdat elk kolomwijzigingen anders schrijft: PostgreSQL gebruikt ALTER COLUMN ... TYPE en SET/DROP NOT NULL, MySQL combineert type en nullability in een enkel MODIFY COLUMN-statement, en SQLite heeft helemaal geen ALTER COLUMN, dus die gevallen worden opgemerkt als needing a table rebuild. Schakel Index-wijzigingen in om ook CREATE INDEX-statements te vergelijken, verpak de uitvoer in een transactie, en zet de terugrол-optie aan voor een tweede, omgekeerde migratie onder de eerste.
Het verwijderen van een tabel of kolom, het verkleinen van een type, of het toevoegen van NOT NULL kan gegevens weggooien of mislukken tegen rijen die niet in de nieuwe beperking passen. Met "Waarschuwen voor gegevensverlies" ingeschakeld, wordt elke dergelijke stap in de uitvoer gemarkeerd zodat het gemakkelijk is potentiële problemen te herkennen voordat u iets tegen een echte database uitvoert. Tabellen die naar elkaar verwijzen via een buitenlandse sleutel, worden in afhankelijkheidsvolgorde gemaakt en verwijderd, dus het script mislukt niet op een tabel die het eerst nodig had.
Alles wordt lokaal in uw browser uitgevoerd — uw schema's worden nergens geüpload, dus het is veilig om echte tabeldefinities van een privédatabase in te plakken. Kopieer de migratie, download deze als een .txt-bestand, of stuur de uitvoer terug naar de invoer om het verder aan te scherpen.