我正在从事的项目正在尝试提出一种解决方案,使数据库和代码变得敏捷,并且能够一起构建和部署。
由于应用程序是代码加上数据库模式和数据库代码表的组合,因此除非您拥有与代码一起进行版本控制的数据库,否则您无法真正拥有应用程序的完整构建。
我们还没有想出一个好的敏捷方法来进行数据库开发以及敏捷/scrum 环境中的代码。
以下是我的一些要求:
- 我希望能够拥有一个与系统的完整构建相对应的 svn 版本号。
- 我不想将二进制文件签入数据库的源代码控制。
- 开发人员需要能够将代码提交到持续集成服务器并一起构建整个系统和数据库。
- 必须能够自动部署到不同的环境,而无需在构建服务器上进行原始构建以外的重建。
(更新)我将在此处添加更多信息以进一步解释。
没有 OR/M 工具,因为它是一个包含大量代码的遗留项目。我已经阅读了敏捷数据库设计信息,并且孤立的这个过程似乎有效,但我正在谈论将它与主动代码开发相结合。
这里有两个场景
开发人员签入需要更改数据库的代码更改。开发人员应该能够同时签入数据库更改,以便自动构建不会失败。
开发人员检查数据库更改,这应该会破坏代码。自动化构建需要运行和失败。
最大的问题是,这些东西如何同步起来。没有“签入数据库更改”之类的东西。现在,数据库更改的应用程序是一个人必须做的手动过程,而代码更改是不断进行的。它们需要一起制作并一起检查,构建系统需要能够构建整个系统。
(更新 2)这里再添加一个:
你不能降低生产,你必须修补它。重建整个生产数据库是不可接受的。