0

迄今爲止,我無法通過配置爲自動部署到Azure的Visual Studio Online Code Repo使自動遷移工作。Azure的CodeFirst數據庫遷移

這裏有一個類似的問題,這是沒有答案: EntityFramework Automatic Migrations with Azure Git Deployment

我的問題,現在,是該數據庫不同步的本地工作副本並在Azure數據庫之間,所以當代碼成功部署,應用程序不再起作用,因爲數據庫沒有更新以匹配新的類。

我試過幾種方法:

  1. Webapi.config更新,包括遷移。

    var migrator = new DbMigrator(new Configuration()); 
    migrator.Update(); 
    
  2. 的Web.Config更新,包括遷移到最新版本

    <add key="MigrateDatabaseToLatestVersion" value="true"/> 
    
  3. 遷移配置更新啓用自動

    AutomaticMigrationsEnabled = true; 
    
  4. 出版直接從Visual Studio通過發佈管理器 - 這仍然不會在Azure站點上執行數據庫更新。 (包括檢查選項框執行遷移)

任何人都可以得到這個工作?

編輯:我也嘗試過,失敗後,作爲後期部署變通,但沒有運氣。 http://robertgreiner.com/2012/05/using-entity-framework-database-migrations-to-update-a-remote-database/

+0

可能很重要,我更改了其中一個類的名稱,所以這可能是由數據丟失預防問題引起的,但我添加了AutomaticMigrationDataLossAllowed = true;遷移目錄中的Configuration.cs文件。 – DiscontentDisciple

回答

1

我發現了我認爲是根本原因(代碼智者,實際的根本原因是我是白癡)。我已經在web.config中配置了LocalDB Client,遷移過程都是針對該數據庫進行的。註釋掉該數據庫並允許程序包管理器中的Update-Database命令針對AzureDB運行,從而正確更新了Azure上的數據庫。

我仍然不完全確定爲什麼遷移不起作用,但我懷疑它是由於Web.Config文件我部署默認數據庫設置爲Azure不知道的東西(的LocalDB)。

所以這是一個解決方法,至少在我修復我的Web.Config設置時將正確的數據庫部署到Azure。