我正在尝试弄清楚如何在我们有两个数据库的环境中实现版本控制:一个测试和一个生产。
在测试中。正在测试任意数量的任务。它们对操作对象的数量和复杂性没有限制,这意味着我们可以有一个3天的任务来更改2个包体和一个触发器,我们可以有一个3个月的任务来更改100个不同的对象,包括С源文件和二进制文件对象。
我主要担心的是DB的基于文本的对象。我们需要对 Test 和 Production 代码进行版本控制,但任何任务都可以从 Testing 转到 Production 而没有定义无论如何。
这意味着我们现在必须手动跟踪文件中的更改,在每个文件中选择代码中的哪些行从 Testing 到 Production 。我们使用一个非常基本的解决方案,在标题中写入一系列注释,其中包含基于文件的版本号,并在代码标记中添加该序列以分隔更改。
我正在努力实施SVN,因为我想创建 Testing 作为 Production 的分支,在 Testing 中有分支以限制每个任务,但我发现它可以导致许多 Testing 任务在合并期间被移植到 Production 。
这就是说,我的问题是:
答案 0 :(得分:0)
我使用SVN对数据库脚本进行源代码控制。
我没有技术解决方案,但我可以解释我们使用的方法。
我们有两组脚本 - 一组用于增量更改,另一组用于完整声明数据库对象和过程。
在开发期间,我们仅更新了在部署期间最终使用的脚本中的增量更改。在测试期间,我们更新了脚本。 最后,在生产中运行脚本之后,我们更新了包含完整声明的第二组脚本。完整脚本用作参考并从头开始创建数据库。