首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用RedGate docker生成迁移脚本?

如何使用RedGate docker生成迁移脚本?
EN

Stack Overflow用户
提问于 2021-09-27 06:34:01
回答 1查看 39关注 0票数 0

我使用RedGate docker在linux上比较了两个SQL Server数据库:

代码语言:javascript
复制
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

但是,它只显示了一个非常粗粒度的比较(只告诉我这两个表不同,但没有显示它们的不同之处)。

这是一种我可以获得更多比较信息的方法吗?我需要列级和索引级的比较。

另外,如何生成迁移脚本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-15 10:25:06

感谢您使用Redgate SQL Compare!

完整的免责声明-我是该产品的开发人员。

要生成报告,您需要做两件事:

1.)像这样挂载一个目录:

代码语言:javascript
复制
--mount type=bind,src="C:\Users\x\Documents",dst=/scripts

它会将你的文件夹挂载到docker容器中的文件夹/scripts中。

2.)将两个额外的参数添加到SQL比较以生成报告,并且是哪种类型的:

代码语言:javascript
复制
/report:"/scripts/report.html" /reporttype:Html

然后,要生成迁移脚本,您必须已经安装了一个类似于上面的目录,并向SQL比较添加了一个额外的参数:

代码语言:javascript
复制
/scriptfile:"/scripts/script.sql"

这将为您提供一个可执行的SQL脚本文件

这两个步骤为我提供了一个交互式HTML报告,其中显示了我在源和目标之间所做的列更改差异:

和SQL脚本文件

我的最后一条命令(编辑后)是:

代码语言:javascript
复制
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,生成脚本的开关来自https://documentation.red-gate.com/sc/using-the-command-line/using-the-command-line-on-linux

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69342171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档