分类

数据库 Schema 对比

比较两个数据库 Schema 并生成迁移草案

支持 SQL DDL 或 JSON/YAML schema 摘要,输出表、字段、索引、外键差异以及迁移 SQL 草案。

示例结果

2 个示例

比较 SQL DDL 并生成 PostgreSQL 迁移草案

展示新增必填字段和索引后的 Schema 变化,并生成对应迁移 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);"
}
查看输入参数
{ "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 Schema 并输出 SQLite 删除提示

比较删除了一张表和一个字段的 JSON Schema 摘要,同时展示 SQLite 需要重建表的提示。

{
  "summary": {
    "tablesRemoved": 1,
    "columnsRemoved": 1
  },
  "migrationSQL": "DROP TABLE audit_logs;\n-- SQLite requires table rebuild to drop column users.email"
}
查看输入参数
{ "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" }

关键信息

分类
Development
输入类型
textarea, select
输出类型
json
样本覆盖
4
支持 API
Yes

概览

数据库 Schema 对比工具可以比较两份 Schema 定义,并生成面向迁移的差异报告,覆盖表、字段、索引和外键变化。

适用场景

  • 当你需要快速知道两份数据库 Schema 到底差在哪里时。
  • 当发布计划依赖于 DDL 变更清单时。
  • 当团队希望在 MySQL、PostgreSQL、SQLite 上线前先得到迁移草案时。
  • 当你在代码评审或交接文档中审查数据库结构更新时。

工作原理

  • 输入当前 Schema 和目标 Schema,可使用 SQL DDL 或 JSON/YAML 摘要。
  • 工具会解析两边的表、字段、索引和外键结构。
  • 然后比较新增、删除和变更项。
  • 输出中会包含结构化差异列表、迁移 SQL 草案,以及用于可视化的关系数据。

使用场景

在后端版本发布前评估数据库迁移影响。
检查字段修改是否会造成兼容性风险。
给开发和 DevOps 团队准备清晰的结构变更报告。
比较不同分支或不同环境生成的数据库 Schema。

用户案例

1. 在发布前审查数据库迁移内容

后端工程师
背景原因
一个服务分支新增了审计表,并修改了用户表字段。
解决问题
团队需要在上线前清楚知道生产库会发生哪些变化。
如何使用
粘贴当前和目标 DDL,选择数据库方言,查看差异列表和迁移 SQL 草案。
示例配置
Schema 格式:自动识别。方言:PostgreSQL。
效果
团队能快速得到表、字段、索引和外键变更摘要,并据此审查迁移方案。

用 Samples 测试

sql

相关专题

常见问题

支持哪些输入格式?

支持 SQL DDL,也支持 JSON/YAML 形式的 Schema 摘要,并尽量自动识别格式。

会生成迁移 SQL 吗?

会。工具会生成一份迁移 SQL 草案,适合作为人工复核和完善的起点。

支持哪些数据库?

主要面向 MySQL、PostgreSQL 和 SQLite 的常见 Schema 变更场景。

能展示关联关系变化吗?

能。外键新增、删除和关系图数据都会一起返回。

API 文档

请求端点

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

请求参数

参数名 类型 必填 描述
sourceSchema textarea -
targetSchema textarea -
schemaFormat select -
dialect select -

响应格式

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

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-database-schema-diff": {
      "name": "database-schema-diff",
      "description": "比较两个数据库 Schema 并生成迁移草案",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=database-schema-diff",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]