处理ASP.NET中版本分支/回滚之间的数据库更改

时间:2011-02-24 19:11:38

标签: asp.net sql-server-2005

我有一个ASP.NET项目。当然,通过不同的发行版和开发分支,db模式会发生变化。

有什么方法可以友好的方式干净地处理架构更改,以便我可以轻松地在开发分支之间切换?

我使用SQL Server 2005,但一般技术可能有用。

2 个答案:

答案 0 :(得分:2)

跟踪开发项目的多个分支中的架构更改的一种好方法是遵循database refactoring过程。除了其他好处之外,此类过程还包括使用增量和迁移脚本将架构更改应用于每个环境(或您的案例中的分支)。设置可能如下所示:

main
  src <-- ASP.NET project source
  db <-- Database create scripts
  delta <-- Database change scripts (SQL delta files)

branch
  src
  db <-- usually has the same contents as the copy in main branch
  delta <-- only the changes necessary for this branch

每次需要更改特定分支的数据库架构时,都会创建一个用于应用更改的SQL增量脚本。为了方便起见,我建议命名每个脚本文件以包含创建日期和时间以使它们按顺序排列。例如:

201102231435_addcolumn.sql
201102231447_addconstraint.sql
201103010845_anotherchange.sql

将增量文件添加到需要进行架构更改的分支中的源代码管理。您应该最终得到每个分支,其中包含更改相应数据库所需的内容。某些细节可能需要根据您的情况进行调整,具体取决于您的分支方案以及您的数据库是否在发布过程中保留(而不是重新创建)。

最后,为了使这些概念变得简单,我建议使用一种工具来帮助管理这个过程。我的建议是看看DBDeploy / DBDeploy.NET。多年来,我一直很乐意在我的所有项目中使用它。

答案 1 :(得分:0)

我们将源代码管理中的架构更改放在同一位置,为该版本部署的其余代码是。