我们是一个 .NET 团队,使用 Oracle DB 的原因有很多,我不会深入探讨。但是部署一直是个婊子。通过记录我们在开发过程中运行的所有脚本,我们手动跟踪每个版本中模式的所有更改。
现在,如果开发人员在运行脚本后忘记将其签入到源代码控制中——这并不罕见——在迭代结束时,我们会非常头疼。
我听说 Red-Gate 的 SQL Compare 可以解决这类问题,但它只支持 SQL Server。有人知道Oracle有类似的工具吗?我一直找不到。
我们是一个 .NET 团队,使用 Oracle DB 的原因有很多,我不会深入探讨。但是部署一直是个婊子。通过记录我们在开发过程中运行的所有脚本,我们手动跟踪每个版本中模式的所有更改。
现在,如果开发人员在运行脚本后忘记将其签入到源代码控制中——这并不罕见——在迭代结束时,我们会非常头疼。
我听说 Red-Gate 的 SQL Compare 可以解决这类问题,但它只支持 SQL Server。有人知道Oracle有类似的工具吗?我一直找不到。
Red Gate Schema Compare for Oracle 现已发布!
http://www.red-gate.com/products/schema_compare_for_oracle/index.htm
有 28 天的全功能免费试用。请试一试,让我们知道您的反馈!
TOAD 是用于 Oracle 开发的出色通用工具,我认为基本版本中也有类似的功能。您可以下载试用版(确保您没有获得旧的免费版 TOAD,即大约 4 岁)
如果您不想购买工具,并且需要更少的闪存,则可以很容易地自己动手。我刚刚发现Schema Compare Tool for Oracle看起来非常简单,并且有一个很好的基线概念。如果您想跟踪自上次代码签入以来的更改,这将非常方便。通过这种方式,您可以发现可能已手动对多个 DB 进行的更改,但未记录在案。
PS:“Red-Gate 的 SQL 比较”演示看起来确实很不错......但是声音让我崩溃了......听起来像 BBC 的纪录片。
OraPowerTools将完成这项工作。Oracle SQL Developer
中还有一个“Diff Wizard” ,但我还没有使用过。
搭便车者,
如果您愿意花一些钱,TOAD 具有“比较模式”功能,应该可以满足您的需求。它将报告差异并生成一个迁移脚本以使一个与另一个保持一致。
我从来没有使用过这个脚本,所以我不能保证它,但我用它来确保我们的构建脚本是完整的。
您可以使用各种工具,虽然我自己没有使用过任何工具,所以我没有对它们发表评论,但是您可以使用的另一个“技巧”是在 DDL 事件上创建触发器,因此您基本上可以捕获(到表、日志文件或其他)部署之间所做的任何更改。
马克 - 我希望能够轻松同步两个数据库模式。具体来说,这个演示对我来说就像天堂一样。
查看 Oracle Enterprise Manager Change Management Pack,它是用于此目的的 Oracle 工具:
http://www.oracle.com/technology/products/oem/pdf/ds_change_pack.pdf
你可以在那里尝试:
http://www.oracle.com/technology/software/products/oem/index.html