在包管理器控制台类型:
Get-Help Update-Database
相关部分:
Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [<Com
monParameters>]
所以,你可以做一个Update-Database -ConnectionStringName "MyConnectionString"
,它应该工作就像一个魅力。你也有一个MigrateDatabaseToLatestVersion
数据库初始值设定项,如果你设置它(通过Dabase.SetInitializer()
),当你用合适的连接字符串在生产环境中部署你的应用时,在第一次数据库访问时,它应该自动地将你的数据库迁移到最新版本。
我建议谨慎,但总是要备份东西。
更新
@Alexy Strakh最近的评论催生了另一种说法值得投入的答案。
使用Code First Migrations正确配置部署系统,给定为2 ConnectionString
s。
- 定义在web.config中的连接字符串(PROD和DEV),使用默认口令的
- 让你的应用程序的配置系统了解PROD和DEV连接配置,可选创建单元测试,以保证正确的拾取*
- 录用config file transformation并让它改变你的web.config成一个具有生产价值
- 部署你的包生产(this should be the most cutting edge way)
您不应该与您的开发箱中的生产环境进行交互,但是如果您真的需要,那么将其作为一个临时解决方案,需要在完成后立即恢复。
另一种方法是简单地使用Web.Debug.config和Web.Release.config,并为主web.config(这是您在源代码管理中签入的唯一一个)提供一个中央模板。
只要确保从不检查生产密码或个人开发密码(如果有任何 )。
*您可以使用DEBUG符号来检查应用程序的运行方式。
对于那些没有的app.config检查和不使用PM控制台,看到这个帖子http://stackoverflow.com/questions/15504465/entityframework-code-first-custom-connection-string-and-migrations/16133150# 16133150 – 2013-04-22 06:52:07