这是一个针对你们开发的开发团队的问题,你们所有人都有独立的数据库。您使用源代码控制和其他工具版本化数据库,这些工具会自动将开发数据库更新到最新版本的数据库(模式,数据,SP,函数等)。数据库版本控制 - 分支交换如何工作?
好极了!可是等等!如果您正在开发软件的4.0版本,但是现在您需要将分支机构切换到3.2分支来修复错误?架构可以(现在几乎可以肯定)与现在非常不同...
我想如果您经过额外的努力来编写回滚脚本以及您的更改脚本,这可能会起作用。但是,这似乎很多工作 - 它真的值得吗?
这是一个针对你们开发的开发团队的问题,你们所有人都有独立的数据库。您使用源代码控制和其他工具版本化数据库,这些工具会自动将开发数据库更新到最新版本的数据库(模式,数据,SP,函数等)。数据库版本控制 - 分支交换如何工作?
好极了!可是等等!如果您正在开发软件的4.0版本,但是现在您需要将分支机构切换到3.2分支来修复错误?架构可以(现在几乎可以肯定)与现在非常不同...
我想如果您经过额外的努力来编写回滚脚本以及您的更改脚本,这可能会起作用。但是,这似乎很多工作 - 它真的值得吗?
更容易的是创建一个新的3.2分支数据库并在3.2分支代码上工作。我要求每个开发人员只有一个数据库可以工作,这似乎并不合理。
我正在做一个假设,并假设您将数据库版本化为二进制文件?如果您的所有数据库资产都是建设性代码的形式(例如SQL脚本和/或文本数据转储),那么解决方案将很简单,就像Mark建议的那样:将这些资产存储为开发分支的一部分。要在版本3.2上工作,请切换分支,重新运行创建脚本和3.2,数据库。合并将与常规代码一样简单(或根据您选择的版本控制系统一样痛苦)。
这里有一些建议,在此模式下工作: