我最近问了一个关于 DVCS 是否适合企业环境的问题,这引发了我的另一个问题。
DVCS 的优点之一似乎是您可以轻松分支并尝试新事物。当我开始考虑数据库更改时,我的问题就开始了。我一直发现将数据库引入 VCS 很棘手,而且听起来使用 DVCS 会更加困难。
那么,使用数据库和 DVCS 的最佳方式是什么?
编辑:我已经开始研究 Migrator.NET。人们如何看待这样的项目,特别是在 DVCS 中使用实验分支轻松地在版本之间移动?
最佳答案
我认为处理这个问题的最佳方法是使用数据库模式,而不是数据库本身。在这种情况下,每个开发人员都会有自己的数据库来进行开发。
以下是一些可用选项:
- Ruby on Rails 中的迁移框架。
- South 对于 Django,除了模型类本身定义的架构之外。
- 适用于 .NET 的 Visual Studio 2008 Team System Database Edition:您定义架构,该工具可以对架构和数据进行比较,以生成在不同版本的数据库之间运行的脚本。<
这些可能会给您一些关于如何处理将数据库置于版本控制中的灵感。处理模式时带来的另一个好处是您可以更轻松地实现 TDD 和持续集成 (CI)。您的 TDD/CI 环境将能够构建新版本的数据库,然后针对新生成的环境运行测试。
关于数据库和 DVCS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1941069/