在包管理器控制檯類型:
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