9

我们是一个 .NET 团队,使用 Oracle DB 的原因有很多,我不会深入探讨。但是部署一直是个婊子。通过记录我们在开发过程中运行的所有脚本,我们手动跟踪每个版本中模式的所有更改。

现在,如果开发人员在运行脚本后忘记将其签入到源代码控制中——这并不罕见——在迭代结束时,我们会非常头疼。

我听说 Red-Gate 的 SQL Compare 可以解决这类问题,但它只支持 SQL Server。有人知道Oracle有类似的工具吗?我一直找不到。

4

7 回答 7

11

Red Gate Schema Compare for Oracle 现已发布!

http://www.red-gate.com/products/schema_compare_for_oracle/index.htm

有 28 天的全功能免费试用。请试一试,让我们知道您的反馈!

于 2009-10-05T17:41:03.967 回答
3

TOAD 是用于 Oracle 开发的出色通用工具,我认为基本版本中也有类似的功能。您可以下载试用版(确保您没有获得旧的免费版 TOAD,即大约 4 岁)

如果您不想购买工具,并且需要更少的闪存,则可以很容易地自己动手。我刚刚发现Schema Compare Tool for Oracle看起来非常简单,并且有一个很好的基线概念。如果您想跟踪自上次代码签入以来的更改,这将非常方便。通过这种方式,您可以发现可能已手动对多个 DB 进行的更改,但未记录在案。

PS:“Red-Gate 的 SQL 比较”演示看起来确实很不错......但是声音让我崩溃了......听起来像 BBC 的纪录片。

于 2008-09-06T10:21:01.797 回答
2

OraPowerTools将完成这项工作。Oracle SQL Developer
中还有一个“Diff Wizard” ,但我还没有使用过。

于 2008-09-08T06:56:24.847 回答
1

搭便车者,

如果您愿意花一些钱,TOAD 具有“比较模式”功能,应该可以满足您的需求。它将报告差异并生成一个迁移脚本以使一个与另一个保持一致。

我从来没有使用过这个脚本,所以我不能保证它,但我用它来确保我们的构建脚本是完整的。

于 2008-09-07T13:17:04.940 回答
0

您可以使用各种工具,虽然我自己没有使用过任何工具,所以我没有对它们发表评论,但是您可以使用的另一个“技巧”是在 DDL 事件上创建触发器,因此您基本上可以捕获(到表、日志文件或其他)部署之间所做的任何更改。

DDL 触发器

于 2008-09-06T11:24:24.843 回答
0

马克 - 我希望能够轻松同步两个数据库模式。具体来说,这个演示对我来说就像天堂一样。

于 2008-09-06T12:43:49.240 回答
0

查看 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

于 2008-11-25T00:15:04.483 回答