我想知道你们如何处理2个或更多开发人员组中的开发数据库更改?您是否拥有全局数据库每个人访问权限,可能是本地副本并手动应用脚本更改?很高兴看到你注意到每种方法的利弊,以及你团队中开发人员的数量。
答案 0 :(得分:3)
以Martin Fowler的“Evolutionary Database Design”开头。这很好地总结了
关于数据库开发还有其他问题也可能有用,例如Is RedGate SQL Source Control for me?
答案 1 :(得分:0)
我们的方法是每个人都有自己的数据库,如果需要,可以使用基础数据创建脚本创建完整的数据库。所需的所有脚本都在源代码管理中。
所有脚本都是CREATE
脚本,它们反映了数据库架构的当前状态。升级在单独的SQL文件中,可以将现有DB从特定版本升级到较新版本(按顺序运行)。应用所有更新后,架构必须与运行安装脚本时的架构相同。
我们有一些工具可以做到这一点(我们使用SQL Server和.NET):
该工具集可用作开源项目(在LGPL下获得许可),它被称为bsn ModuleStore(请注意,它仅限于SQL Server 2005/2008 / Azure和运行时部分的.NET)。
答案 2 :(得分:0)
我们使用名为“Data Dude”的代码--TFS和Visual Studio中的数据库功能 - 来处理这个问题。当您“获取最新信息”并引入依赖于模式更改的代码时,您还会引入修改后的模式,存储过程等。您可以快速单击数据库项目并部署;它使您的本地架构和sp同步,但不会覆盖您的数据。制定脚本以使您从旧架构转到新架构的工作属于Visual Studio,而不是您或您的DBA。我们还有“填充”脚本,用于列出省份列表,并为您运行部署。
比在高压力时刻总是崩溃的旧方式好得多,人们检查代码然后回家,没有人知道要添加哪些列以使代码工作等。