我正在使用EF 4.0进行Web应用程序,并采用“模型优先”方法 - 因此我定义了所有实体,生成DDL并根据模型创建数据库结构。
现在,每次模型中的某些内容发生变化时,我都会重新生成DDL,并从头开始重新创建数据库结构 - 删除并重新创建表。在此过程中,我丢失了已经存在的所有配置数据。现在这很好,但是一旦应用程序投入生产,如果我决定更改某些内容,我将如何升级数据库?
为了简化,(如何)我可以从模型升级数据库并保留所有数据?
谢谢!
答案 0 :(得分:4)
您需要另一个工作流程或T4模板化数据库生成。它已在Visual Studio 2010的Entity Designer Database Generation Power pack扩展中提供。唯一的问题是这些工作流程使用的是Visual Studio中的数据库工具,这些工具仅在Premium和Ultimate版本中可用。
如果您没有VS 2010 Premium或Ultimate,您必须首先部署新数据库以测试环境并自行编写diff脚本或购买一些差异脚本生成器 - 我推荐来自Red Gate的数据库工具。