最近,在我正在进行的一个项目中,我们一直在努力使解决方案的代码库和相关的数据库架构保持同步(数据库 = SQL Server 2008)。
数据库变化相当频繁(添加列、约束、关系等),因此人们从源代码控制中进行“获取最新”并不少见 发现他们也需要重建数据库(有时他们忘记做后者)。
我们没有使用 VSTS:数据库版 (DataDude),而是使用带有脚本(批处理文件)的标准 Visual Studio 数据库项目,该脚本可从 T-SQL 脚本中拆除并重新创建数据库。该解决方案是一个 .Net 和 ASP.net 解决方案,其中 LINQ to SQL 作为 ORM 底层。
是否有人对采用(自动化或非自动化)方法有想法,这将使每个人都了解最新的数据库架构?
与 MSBuild 的持续集成是一种选择,但只能帮助获取任何已提交的重大更改,在我上面强调的场景中并没有真正帮助。
如果有帮助,我们正在使用 Team Foundation Server..
最佳答案
我们尝试从创建脚本开始工作。
即除非脚本已经过测试并 checkin 源代码管理,否则不会授权对数据库进行更改。
但这假设数据库团队与您的应用程序团队整合在一起,而在大型项目中通常情况并非如此......
(我很想“好不容易”回答这个问题)
编辑:如果您的流程不正确,工具将无济于事。
关于database - 如何保持代码库和数据库模式同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/445800/