实体框架4.1 - 使用T-SQL跟踪和手动部署DDL更改

时间:2011-07-19 19:37:00

标签: entity-framework

我是实体框架概念的新手。我最近使用Entity Framework 4.1 Code First Approach实现了一个项目。现在我正在修复一些错误,需要我向模型添加更多属性(导致DDL的更改),我受限于没有委托Entity Framework为我重新创建数据库。如果我使用Entity Framework重新创建数据库,我将丢失现有数据。我有什么选择?我是否可以仅为DDL更改创建T-SQL脚本并进行部署?如何随着时间的推移跟踪这些变化?帮助!

1 个答案:

答案 0 :(得分:0)

您使用的是源代码管理吗?如果是,那就是你上一个问题的答案。

  • 使用源控件和标签/标记每个发布的版本,以便您可以轻松获取该版本使用的代码,并使用它来创建用于该版本的数据库。
  • 然后使用当前版本创建数据库(您需要在一个版本中更改连接字符串,以便数据库不会覆盖)。
  • 一旦在开发数据库服务器上部署了数据库,就可以使用某种工具来创建迁移脚本的基础。 Red Gate SQL Compare或VS Studio数据库工具(VS 2010 Premium或Ultimate)提供此类功能。这些工具能够比较数据库的模式,并创建从旧模式到新模式的升级脚本。
  • 一旦你有升级脚本,你需要测试该脚本 - 最好是在生产数据库的备份上测试它。此测试的目标是验证已升级的数据库并验证它是否适用于数据库中的数据。如果不是,则必须修改脚本,并可能添加一些手动迁移任务。

评论中提到的数据库电源包正是这样做的(它依赖于VS Studio数据库工具),但只有在使用EDMX文件(模型优先)时才会这样做。