使用Web配置转换对生产数据库实体框架更新数据库进行代码首次迁移

时间:2015-08-12 13:21:31

标签: asp.net entity-framework ef-code-first

我有这个Web.config

  <connectionStrings>
    <add name="AuthContext" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=mokey;Integrated Security=True" providerName="System.Data.SqlClient" />
   </connectionStrings>

Web.Release.config

  <connectionStrings>
    <add xdt:Transform="SetAttributes" xdt:Locator="Match(name)" name="AuthContext" providerName="MySql.Data.MySqlClient" connectionString="server=mysql2.gear.host;database=mokey;persistsecurityinfo=True" />
  </connectionStrings>

所以我有两个数据库,本地和生产。

现在,当我运行update-database时,本地数据库已更新。

如何为生产数据库运行update-database,即将数据库迁移到最新版本?

1 个答案:

答案 0 :(得分:1)

您可能需要重新考虑使用代码部署更新PRODUCTION数据库。这不是EF的意图,而且许多DBA会因代码直接更新而出现问题。

我们所做的是根据DBA运行的迁移生成脚本,如下所述:http://cpratt.co/migrating-production-database-with-entity-framework-code-first/#at_pco=smlwn-1.0&at_si=54ad5c7b61c48943&at_ab=per-12&at_pos=0&at_tot=1

您还必须考虑数据库初始化程序是什么,并在生产中将其设置为null或migratetolatestversion。您还可以在构建服务器中使用migrate.exe来更新数据库。