Datenbank Schema Diff

Vergleicht zwei Datenbankschemas und erstellt einen Migrationsentwurf

Unterstuetzt SQL DDL oder JSON/YAML Schemabeschreibungen mit Tabellen-, Spalten-, Index- und Fremdschluessel-Diffs.

Beispielergebnisse

2 Beispiele

SQL-DDL vergleichen und PostgreSQL-Migration entwerfen

Zeigt, wie ein Schema eine Pflichtspalte und einen Index erhaelt, und erzeugt passendes Migrations-SQL.

{
  "summary": {
    "tablesAdded": 0,
    "tablesRemoved": 0,
    "columnsAdded": 1,
    "columnsRemoved": 0,
    "columnsChanged": 0,
    "indexesChanged": 1,
    "foreignKeysChanged": 0,
    "totalChanges": 2
  },
  "migrationSQL": "ALTER TABLE users ADD COLUMN email TEXT NOT NULL;\nCREATE INDEX idx_users_email ON users (email);"
}
Eingabeparameter anzeigen
{ "sourceSchema": "CREATE TABLE users (\n id INT PRIMARY KEY,\n name TEXT\n);", "targetSchema": "CREATE TABLE users (\n id INT PRIMARY KEY,\n name TEXT,\n email TEXT NOT NULL\n);\nCREATE INDEX idx_users_email ON users (email);", "schemaFormat": "sql", "dialect": "postgresql" }

JSON-Schemas mit SQLite-Hinweis vergleichen

Vergleicht JSON-Schema-Zusammenfassungen mit entfernter Tabelle und Spalte inklusive SQLite-Neuaufbau-Hinweis.

{
  "summary": {
    "tablesRemoved": 1,
    "columnsRemoved": 1
  },
  "migrationSQL": "DROP TABLE audit_logs;\n-- SQLite requires table rebuild to drop column users.email"
}
Eingabeparameter anzeigen
{ "sourceSchema": "{\n \"tables\": {\n \"users\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n },\n \"email\": {\n \"type\": \"TEXT\",\n \"nullable\": false\n }\n }\n },\n \"audit_logs\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n }\n }\n }\n }\n}", "targetSchema": "{\n \"tables\": {\n \"users\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n }\n }\n }\n }\n}", "schemaFormat": "json", "dialect": "sqlite" }

Wichtige Fakten

Kategorie
Entwicklung & Web
Eingabetypen
textarea, select
Ausgabetyp
json
Sample-Abdeckung
4
API verfügbar
Yes

Überblick

Vergleichen Sie zwei Datenbankschemas und generieren Sie sofort ausführbares Migrations-SQL. Das Tool analysiert SQL-DDL oder JSON/YAML-Beschreibungen und ermittelt Unterschiede bei Tabellen, Spalten, Indizes und Fremdschlüsseln für MySQL, PostgreSQL und SQLite.

Wann verwenden

  • Planung von Schema-Migrationen zwischen Entwicklungs- und Produktionsumgebungen
  • Code-Review von Datenbankänderungen vor dem Deployment
  • Dokumentation von Schema-Drifts im Laufe der Zeit

So funktioniert es

  • Fügen Sie das aktuelle Quellschema und das gewünschte Zielschema als SQL-DDL oder JSON/YAML ein
  • Wählen Sie das Schemaformat und den SQL-Dialekt oder lassen Sie diese automatisch erkennen
  • Das Tool analysiert Tabellen, Spalten, Indizes und Fremdschlüssel auf strukturelle Unterschiede
  • Sie erhalten eine Zusammenfassung der Änderungen sowie generiertes Migrations-SQL

Anwendungsfälle

Erstellung von Migrations-Skripten für CI/CD-Pipelines
Analyse von Schema-Unterschieden zwischen Staging und Produktion
Konvertierung von Schema-Definitionen zwischen verschiedenen Datenbanksystemen

Beispiele

1. PostgreSQL-Migration mit neuen Pflichtfeldern

Datenbankentwickler
Hintergrund
Ein Entwickler muss die bestehende users-Tabelle um eine Pflicht-E-Mail-Spalte erweitern und einen Index hinzufügen, um Abfragen zu beschleunigen.
Problem
Manuelles Erstellen der korrekten ALTER-TABLE-Reihenfolge ist zeitaufwändig und fehleranfällig.
Verwendung
Fügen Sie das aktuelle CREATE TABLE users als Quellschema und das erweiterte Schema mit email-Spalte und Index als Zielschema ein. Wählen Sie SQL als Format und PostgreSQL als Dialekt.
Ergebnis
Das Tool liefert das Migrations-SQL mit ALTER TABLE users ADD COLUMN email TEXT NOT NULL und CREATE INDEX idx_users_email ON users (email).

2. SQLite-Schema-Bereinigung via JSON

Systemarchitekt
Hintergrund
Ein Architekt bereinigt das Schema und entfernt die audit_logs-Tabelle sowie die email-Spalte aus der users-Tabelle, um die Datenbank zu vereinfachen.
Problem
SQLite erfordert für das Entfernen von Spalten einen kompletten Tabellen-Neubau, was manchmal übersehen wird.
Verwendung
Fügen Sie das vollständige JSON-Schema mit allen Tabellen als Quelle und das reduzierte Schema ohne audit_logs und ohne email-Spalte als Ziel ein. Wählen Sie JSON als Format und SQLite als Dialekt.
Ergebnis
Das Tool generiert DROP TABLE audit_logs und zeigt einen Hinweis an, dass für das Entfernen der email-Spalte ein Tabellen-Neubau erforderlich ist.

Mit Samples testen

sql

Verwandte Hubs

FAQ

Welche Eingabeformate unterstützt das Tool?

SQL-DDL-Befehle sowie JSON- und YAML-Schemabeschreibungen.

Erkennt das Tool auch Fremdschlüssel und Indizes?

Ja, es analysiert Tabellen, Spalten, Indizes und Fremdschlüssel auf Unterschiede.

Was ist der Unterschied zwischen automatischer und manueller Dialektauswahl?

Bei automatischer Erkennung analysiert das Tool die Syntax; manuelle Auswahl erzwingt einen bestimmten Dialekt.

Wie werden entfernte Spalten oder Tabellen behandelt?

Es werden DROP-Befehle generiert oder Hinweise zum Neubau (besonders bei SQLite) angezeigt.

Ist das generierte SQL direkt ausführbar?

Das SQL ist syntaktisch korrekt, sollte jedoch vor Produktivsetzung in einer Testumgebung validiert werden.

API-Dokumentation

Request-Endpunkt

POST /de/api/tools/database-schema-diff

Request-Parameter

Parameter-Name Typ Erforderlich Beschreibung
sourceSchema textarea Ja -
targetSchema textarea Ja -
schemaFormat select Nein -
dialect select Nein -

Antwortformat

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
JSON-Daten: JSON-Daten

MCP-Dokumentation

Fügen Sie dieses Tool zu Ihrer MCP-Server-Konfiguration hinzu:

{
  "mcpServers": {
    "elysiatools-database-schema-diff": {
      "name": "database-schema-diff",
      "description": "Vergleicht zwei Datenbankschemas und erstellt einen Migrationsentwurf",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=database-schema-diff",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Sie können mehrere Tools verketten, z.B.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, maximal 20 Tools.

Wenn Sie auf Probleme stoßen, kontaktieren Sie uns bitte bei [email protected]