2

我试图弄清楚如何在我们有两个数据库的环境中实现版本控制:一个是Testing和一个Production

测试中。有任意数量的任务正在测试。这些对操作对象的数量和复杂性没有限制,这意味着我们可以有一个 3 天的任务来更改 2 个包主体和一个触发器,我们可以有一个 3 个月的任务来更改 100 个不同的对象,包括С源文件和二进制文件对象。

我主要关心的是数据库的基于文本的对象。我们需要对测试生产代码进行版本控制,但是任何任务都可以从测试转到生产,没有任何定义的顺序。

这意味着现在我们必须手动跟踪文件中的更改,在每个文件中选择代码中从TestingProduction的行。我们使用了一个非常基本的解决方案,在标题中写入带有基于文件的版本号的注释序列,并添加具有该序列的代码标签来分隔更改。

我正在努力实现 SVN,因为我想将Testing创建为Production的一个分支,在Testing中有分支来限制每个任务,但我发现它可能导致许多Testing任务在合并期间被移植到Production 。

这就是说,我的问题是:

  • 有没有办法自动解决这个问题?
  • 是否有任何特定于数据库的版本控制解决方案?
  • 如果代码库如此不同,我如何“链接”这两个环境?
4

1 回答 1

0

我使用 SVN 对数据库脚本进行源代码控制。

我没有针对您的问题的技术解决方案,但我可以解释我们使用的方法。

我们有两组脚本——一组用于增量更改,另一组用于数据库对象和过程的完整声明。

在开发过程中,我们只更新了最终在部署过程中使用的脚本中的增量更改。在测试轮次中,我们更新了脚本。最后,在生产环境中运行脚本后,我们更新了包含完整声明的第二组脚本。完整的脚本用作参考并从头开始创建数据库。

于 2013-07-26T13:18:52.410 回答