我们是一个使用Oracle数据库的.NET团队,其原因很多,我不会深入研究。但部署一直是个婊子。我们通过记录我们在开发期间运行的所有脚本来手动跟踪每个版本中模式的所有更改。
现在,如果开发人员在运行之后忘记将其脚本签入源控件 - 这并不是那么罕见 - 在迭代结束时我们会非常头疼。
我听说Red-Gate的SQL Compare可能会解决这些问题,但它只支持SQL Server。有谁知道Oracle的类似工具?我一直找不到。
答案 0 :(得分:11)
Oracle的Red Gate Schema Compare现已发布!
http://www.red-gate.com/products/schema_compare_for_oracle/index.htm
有一个为期28天的全功能免费试用版。请试一试,让我们知道您的反馈意见!
答案 1 :(得分:3)
TOAD是Oracle开发的一个很好的通用工具,我认为基本版本中有类似的功能。您可以下载试用版(请确保您没有获得TOAD的旧免费版本,即大约4年)
如果您不想购买工具,并且需要更少的闪光灯,那么您可以很容易地自己动手。我刚刚发现Schema Compare Tool for Oracle看起来非常简单,并且有一个很好的基线概念。如果您想跟踪自上次代码签入以来的更改,这非常方便。通过这种方式,您可以手动发现可能已对多个DB进行的更改,但未记录。
PS:“Red-Gate的SQL比较”演示看起来确实非常好......但是声音过度破坏了......听起来就像是BBC的纪录片。
答案 2 :(得分:2)
OraPowerTools将完成这项工作 <{3}}中还有一个“差异向导”,但我还没有使用它。
答案 3 :(得分:1)
旅行者,
如果你愿意花一些钱,TOAD有“比较模式”功能,应该做你想要的。它会报告差异并生成一个迁移脚本,以使其与另一个相符。
我从未使用过该脚本,所以我无法保证它,但我已经用它来确保我们的构建脚本是完整的。
答案 4 :(得分:0)
你可以使用各种各样的工具,我自己也没有使用它们,所以我没有对它们做任何评论,但你可以使用的另一个“技巧”是创建一个触发器在DDL事件上,您基本上可以捕获(到表,或日志文件或任何内容)部署之间所做的任何更改。
答案 5 :(得分:0)
Mark - 我希望能够轻松地同步两个数据库模式。具体来说,this demo对我来说就像是天堂。
答案 6 :(得分:0)
查看Oracle Enterprise Manager变更管理包,它是一个Oracle工具:
http://www.oracle.com/technology/products/oem/pdf/ds_change_pack.pdf
你可以在那里试试:
http://www.oracle.com/technology/software/products/oem/index.html