You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用RedGate docker生成迁移脚本并获取细粒度数据库比对结果

解决方案

一、获取列级、索引级详细比对结果

默认SQL Compare仅输出最简比对结论,你可以通过添加参数实现细粒度差异输出:

  • 控制台直接打印明细:添加/verbose参数,终端会直接输出每个对象的具体差异,包括表的字段属性、索引定义、约束规则等层级的区别
  • 生成结构化可视化报告:搭配/Report和/ReportType参数生成HTML格式报告,差异会按对象分类展示,表层级会自动展开列、索引、键等子对象的具体差异

注意:使用文件输出类参数时需要先挂载本地目录到容器,否则生成的文件会随容器销毁丢失

示例命令如下:

# 先创建本地用于存放报告的目录
mkdir -p ./sqlcompare_output
# 带详细输出+生成报告的比对命令
docker run --rm --interactive --tty \
    -v $(pwd)/sqlcompare_output:/report \
    redgate/sqlcompare:14 /IAgreeToTheEULA \
    /s1:sql_docker_1,1433 /db1:Customers /u1:SA /p1:pass \
    /s2:sql_docker_2,1533 /db2:Customers /u2:SA /p2:pass \
    /verbose \
    /Report:"/report/diff_report.html" /ReportType:Html

执行完成后直接打开本地./sqlcompare_output/diff_report.html即可查看全量细粒度比对结果。

二、生成迁移脚本

添加/ScriptFile参数即可自动生成从源库(s1)同步到目标库(s2)的迁移脚本,示例命令如下:

mkdir -p ./sqlcompare_output
docker run --rm --interactive --tty \
    -v $(pwd)/sqlcompare_output:/script \
    redgate/sqlcompare:14 /IAgreeToTheEULA \
    /s1:sql_docker_1,1433 /db1:Customers /u1:SA /p1:pass \
    /s2:sql_docker_2,1533 /db2:Customers /u2:SA /p2:pass \
    /ScriptFile:"/script/migration.sql"

如果需要生成从目标库同步到源库的反向脚本,额外添加/Reverse参数即可。生成的脚本会存放在本地./sqlcompare_output/migration.sql路径下,执行前建议先预览脚本内容确认同步逻辑符合预期。


内容的提问来源于stack exchange,提问作者Hossein Fallah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:36:03