2013-02-15 101 views
5

我已经在启用迁移的实体框架5中使用实体框架5在Visual Studio 2010中创建了ASP.NET MVC 4项目。对于不同的环境(Debug,Staging,Release),我有多个Web配置文件,它们将根据环境指定不同的数据库连接字符串。如何使用包管理器控制台中的Update-Database命令和多个配置文件处理迁移?每次运行此命令时,它都默认为主Web.config连接字符串。感谢您提前提供任何帮助。使用多个Web配置转换的实体框架迁移

+0

你如何将代码部署到各种环境?即。使用Visual Studio? CI詹金斯? – 2013-02-15 18:02:20

+0

我正在使用Visual Studio中的发布网络选项。 – bbango 2013-02-15 19:00:27

+0

我认为有一个选项来更新数据库 – 2013-02-15 20:20:20

回答

6

为了尝试尽可能简单,我在远程登台和生产服务器上运行迁移的方式是从包控制台运行以下命令(数据源和用户/密码将会更改这取决于服务器我想跑对迁移):

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

这对我来说,到目前为止的情况下,其他人的工作是寻找。多谢大家的评价。

0

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

+1

转换工作正常。我不清楚如何处理迁移和更新不同环境中的数据库。 – bbango 2013-02-15 16:44:31

0

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

EF代码首先迁移配备了一个迁移工具,它允许您运行“更新”通过命令提示符命令。

我不确定你是如何设置的,但是我们通过我们的CI服务器(Jenkins)部署了代码。 然后我添加了一个post部署步骤,通过命令行运行update-database。

最棒的是你也可以指定连接字符串。

同样,这一切都取决于如何适合您的过程,您甚至可以使用Nant为您执行此操作。

希望这会有所帮助。

+0

这个migrate.exe工具可能是我正在寻找的。 我为您提供的一个与您的部署过程相关的问题是,如果迁移失败或出现意外情况,您将如何恢复? – bbango 2013-02-15 19:14:35

+0

我们会回滚传统的方式。 DBMigrations允许您定位一个迁移脚本(如果需要回滚),但我不会依赖此回滚您的生产服务器。您也可以从迁移生成脚本 – 2013-02-15 20:11:21