如何使用 RedGate docker 生成迁移脚本?
How to generate migration script using RedGate docker?
我能够使用 RedGate docker 在 linux 上比较两个 SQL 服务器数据库:
docker run --rm --interactive --tty\
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
但是,它只是给我一个很粗粒度的比较(只告诉我这两个表不一样,但没有告诉我它们的不同)。
我可以通过这种方式获得更多关于比较的信息吗?我需要列级别和索引级别的比较。
另外,如何生成迁移脚本?
感谢使用 Redgate SQL 比较!
完全免责声明 - 我是该产品的开发人员。
要生成报告,您需要做两件事:
1.) 挂载这样的目录:
--mount type=bind,src="C:\Users\x\Documents",dst=/scripts
这会将您的 Windows 文档文件夹安装到 docker 容器中的文件夹 /scripts。
2.) 添加两个额外的参数到 SQL Compare 以生成报告并且类型为:
/report:"/scripts/report.html" /reporttype:Html
然后要生成迁移脚本,您必须像上面那样安装一个目录,并向 SQL 添加一个额外的参数比较:
/scriptfile:"/scripts/script.sql"
这会给你一个可以执行的 SQL 脚本文件
这两个步骤为我提供了一个交互式 HTML 报告,其中显示了我在源和目标之间所做的列更改差异:
还有一个SQL脚本文件
我的最终命令(编辑)是:
docker run --rm --interactive --tty --mount type=bind,src="C:\Users\x\Documents",dst=/scripts redgate/sqlcompare:14 /IAgreeToTheEULA /s1:x.example.com,1433 /db1:compare_source /u1:sa /p1:xxx /s2:x.example.com,1433 /db2:compare_target /u2:sa /p2:xxx /scriptfile:"/scripts/script.sql" /report:"/scripts/report.html" /reporttype:Html
报告开关来自https://documentation.red-gate.com/sc/using-the-command-line/switches-used-in-the-command-line#Switchesusedinthecommandline-/include:%3Ctype%3E:%3Cregularexpression%3E and generating a script came from https://documentation.red-gate.com/sc/using-the-command-line/using-the-command-line-on-linux
我能够使用 RedGate docker 在 linux 上比较两个 SQL 服务器数据库:
docker run --rm --interactive --tty\
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
但是,它只是给我一个很粗粒度的比较(只告诉我这两个表不一样,但没有告诉我它们的不同)。
我可以通过这种方式获得更多关于比较的信息吗?我需要列级别和索引级别的比较。
另外,如何生成迁移脚本?
感谢使用 Redgate SQL 比较!
完全免责声明 - 我是该产品的开发人员。
要生成报告,您需要做两件事:
1.) 挂载这样的目录:
--mount type=bind,src="C:\Users\x\Documents",dst=/scripts
这会将您的 Windows 文档文件夹安装到 docker 容器中的文件夹 /scripts。
2.) 添加两个额外的参数到 SQL Compare 以生成报告并且类型为:
/report:"/scripts/report.html" /reporttype:Html
然后要生成迁移脚本,您必须像上面那样安装一个目录,并向 SQL 添加一个额外的参数比较:
/scriptfile:"/scripts/script.sql"
这会给你一个可以执行的 SQL 脚本文件
这两个步骤为我提供了一个交互式 HTML 报告,其中显示了我在源和目标之间所做的列更改差异:
还有一个SQL脚本文件
我的最终命令(编辑)是:
docker run --rm --interactive --tty --mount type=bind,src="C:\Users\x\Documents",dst=/scripts redgate/sqlcompare:14 /IAgreeToTheEULA /s1:x.example.com,1433 /db1:compare_source /u1:sa /p1:xxx /s2:x.example.com,1433 /db2:compare_target /u2:sa /p2:xxx /scriptfile:"/scripts/script.sql" /report:"/scripts/report.html" /reporttype:Html
报告开关来自https://documentation.red-gate.com/sc/using-the-command-line/switches-used-in-the-command-line#Switchesusedinthecommandline-/include:%3Ctype%3E:%3Cregularexpression%3E and generating a script came from https://documentation.red-gate.com/sc/using-the-command-line/using-the-command-line-on-linux