【发布时间】:2012-08-21 19:21:20
【问题描述】:
对于我当前的项目,我希望在发布时将我的数据库更新为正确的版本,而不是首先通过 App_Start 运行。
似乎支持通过与 Entity Framework (5.0 rc2) 一起提供的命令行工具“migrate.exe”进行手动升级。但我找不到任何关于其他人如何将此工具与 msdeploy 结合以在发布而不是首次运行时升级数据库的信息。
我找到了解释如何使用 migrate.exe 工具的以下页面: http://blog.overridethis.com/blog/post/2012/03/13/Automating-EF-43x-Data-Migrations-in-your-Build.aspx
但这迫使我以某种方式“了解”连接字符串信息。
我的最佳解决方案是这样的:
- 连接字符串在 setParameters.xml 文件中配置为 发布时替换
- 在发布代码库后发布 使用正确的连接字符串调用 migrate.exe
似乎我搜索的是“实体框架 MSDeploy 提供程序”(请参阅:http://blogs.msdn.com/b/adonet/archive/2012/01/12/ef-4-3-beta-1-released.aspx),但似乎他们前段时间放弃了该选项
【问题讨论】:
-
您可以让您的迁移生成用于升级的 SQL 脚本,并在发布 Web 时使用该脚本。我认为目前不支持在 Web 部署期间运行迁移。
标签: entity-framework deployment msdeploy entity-framework-migrations