Sql 预期的数据库模型在实时性上不一致
在中,我遇到了一个问题:我正在为已部署的应用程序编写更新,以使数据库与我们正在部署的较新版本保持同步。基本情况如下:Sql 预期的数据库模型在实时性上不一致,sql,visual-studio-2010,sql-server-2005,asp.net-mvc-2,ado.net,Sql,Visual Studio 2010,Sql Server 2005,Asp.net Mvc 2,Ado.net,在中,我遇到了一个问题:我正在为已部署的应用程序编写更新,以使数据库与我们正在部署的较新版本保持同步。基本情况如下: 从当前部署的应用程序版本开始 添加了使用现有数据库的新功能 添加了新的数据库表和关系 添加了依赖于新数据库结构的新功能 测试完成,准备部署 这里的问题是,当前部署的应用程序已经使用了几个月,并且有大量需要保留的数据,因此简单地用新的替换旧的是不可行的(至少对于数据库来说不是这样,但是对于代码来说当然是行得通的)。因此,我使用以下步骤在SQL中编写了一个脚本,以便应用程序的更新
- 从当前部署的应用程序版本开始
- 添加了使用现有数据库的新功能
- 添加了新的数据库表和关系
- 添加了依赖于新数据库结构的新功能
- 测试完成,准备部署
- 使用VS2010的“从模型生成数据库”功能创建.sql(该模型最初是使用“从数据库生成模型”功能创建的)
- 删除作用于现有表的.sql的所有部分,但在新表和旧表之间添加FK的部分除外
- 使用生成的脚本构建新数据库
- 生成脚本
- 删除“新”表和约束(已部署版本中尚不存在的表和约束)
- 运行脚本以重新添加表
有人能解释一下为什么会这样吗?你可能想看看redgate提供的一些工具——比较两个DB结构和生成要更新的脚本的好工具