【问题标题】:Entity Framework Migrations with Multiple Web Config Transforms具有多个 Web 配置转换的实体框架迁移
【发布时间】:2013-02-15 14:27:40
【问题描述】:

我使用 Entity Framework 5 在 Visual Studio 2010 中创建了一个 ASP.NET MVC 4 项目,并启用了迁移。我有多个针对不同环境(调试、暂存、发布)的 Web 配置文件,它们将根据环境指定不同的数据库连接字符串。如何使用包管理器控制台中的 Update-Database 命令和多个配置文件来处理迁移?每次我运行此命令时,它默认为主 Web.config 连接字符串。感谢您提前提供任何帮助。

【问题讨论】:

  • 您如何将代码部署到各种环境中? IE。使用 Visual Studio? CI 詹金斯?
  • 我目前在 Visual Studio 中使用发布 Web 选项。
  • 我以为有更新数据库的选项
  • 我刚刚回答了一个类似的问题。希望有用:stackoverflow.com/a/22189549/2179408

标签: entity-framework asp.net-mvc-4 entity-framework-5


【解决方案1】:

为了让事情尽可能简单,我在远程登台和生产服务器上运行迁移的方法是从包控制台运行以下命令(数据源和用户/密码将根据我想在哪个服务器上运行迁移):

Update-Database -Verbose -ConnectionString "Data Source=ServerName;Initial Catalog=db;User Id=user;Password=pass;" -ConnectionProviderName "System.Data.SqlClient"

到目前为止,这对我有用,以防其他人正在寻找。谢谢大家的cmets。

【讨论】:

    【解决方案2】:

    要迁移到不同的环境,你应该使用Web config transform tool,我认为这不是实体框架迁移的责任。

    【讨论】:

    • 转换工作正常。我不清楚如何在不同的环境中处理迁移和更新数据库。
    【解决方案3】:

    http://msdn.microsoft.com/en-us/data/jj618307.aspx

    EF Code First Migrations 附带一个迁移工具,可让您通过命令提示符运行“更新”命令。

    我不太确定您是如何设置的,但我们做了类似的事情,通过 CI 服务器 (Jenkins) 部署代码。 然后我添加了一个部署后步骤以通过命令行运行更新数据库。

    它的好处是你也可以指定连接字符串。

    同样,这完全取决于它如何适合您的流程,您甚至可以使用 Nant 为您执行此操作。

    希望这会有所帮助。

    【讨论】:

    • 这个 migrate.exe 工具可能就是我要找的。我有一个与您的部署过程有关的附带问题,如果迁移失败或出现意外情况,您如何恢复?
    • 我们将回滚传统方式。 DBMigrations 允许您以迁移脚本为目标(如果您需要回滚),但我不会依赖它来回滚您的生产服务器。您还可以从迁移生成脚本
    猜你喜欢
    • 1970-01-01
    • 2016-09-15
    • 2012-07-25
    • 2014-04-09
    • 2015-05-11
    • 1970-01-01
    • 2017-09-26
    相关资源
    最近更新 更多