2

我正在寻找一些“最佳实践”,用于从源代码控制自动部署存储过程/视图/函数/表更改。我正在使用 StarTeam 和 ANT,因此标签得到处理;我正在寻找的是你们中的一些人如何从源头自动提取这些对象 - 不一定是 StarTeam。

我想最终得到一个可以执行、签入和标记的脚本。

我不是要求任何人写这些 - 只是一些过去已经(或没有)工作的想法或方法。

我正在努力收拾烂摊子,并希望确保我尽可能地接近“正确”。

我们将表/视图/函数等存储在 StarTeam 的单个文件中,我们的数据库是 SQL 2K5。

4

2 回答 2

4

我们使用 redgate ( http://www.red-gate.com/ ) 的 SQL 比较。

我们有一个生产数据库,一个开发数据库,​​每个开发人员都有自己的数据库。

开发数据库与开发人员在签入更改时对其数据库所做的更改同步。

开发人员还签入同步脚本和 SQL Compare 生成的比较报告。

当我们部署我们的应用程序时,我们只需使用 SQL Compare 将开发数据库与生产数据库同步。

这对我们有用,因为我们的应用程序仅供内部使用。如果这不是您的情况,那么我会查看 SQL Packager(也来自 redgate)。

于 2008-09-09T19:23:19.177 回答
1

我更喜欢将视图、过程和触发器(可以随意重新创建的对象)与表分开。对于视图、过程和触发器,只需编写一个作业来检查它们并重新创建最新的。

对于表,我更喜欢只有一行的数据库版本表。使用该表来确定尚未应用哪些新更新。然后应用每次更新并更新版本号。如果更新失败,您只需检查该更新,并且您可以重新运行,知道之前的更新不会再次发生。

于 2008-09-09T19:08:57.353 回答