2012-08-23 58 views
1

我需要在部署時更新測試服務器數據庫,但我沒有找到辦法做到這一點。 我們沒有使用自動遷移,因此我們手動執行。實體框架在測試服務器上執行遷移

我可以直接在測試服務器上執行它嗎?也許一個控制檯程序?

我使用的NuGet呼籲地方發展:更新,數據庫 我知道我們可以生成腳本文件,我必須做手工?

回答

0

如果您使用Visual Studio,則可以使用發佈功能來執行腳本。在這裏尋找更多詳情:

http://learn.iis.net/page.aspx/1081/building-a-web-deploy-package-from-visual-studio-2010/

如果您使用的團隊基金會的服務器,你甚至可以自動執行它:

http://weblogs.asp.net/jdanforth/archive/2010/04/24/package-and-publish-web-sites-with-tfs-2010-build-server.aspx

也來生成腳本,也許你可以使用migrate.exe(它帶有ef 4.3我認爲當獲得nuget包時)並在後期構建中運行它...

2

您可以使用MigrateDatabaseToLatestVersion數據庫初始值設定程序來執行您的m通過代碼或配置來實現。在代碼中你會做以下的應用程序啓動時:

Database.SetInitializer<MyContext>(
    new MigrateDatabaseToLatestVersion<MyContext, MyMigrationConfig>() 
); 

或者在應用程序的config文件:

<entityFramework> 
    <contexts> 
     <context type="MyContext"> 
     <databaseInitializer 
      type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[ 
       [MyContext], [MyMigrationConfig] 
     ], EntityFramework" /> 
     </context> 
    </contexts> 
</entityFramework> 
+0

文檔[這裏](https://msdn.microsoft.com/en -gb/data/jj556606.aspx) - 「數據庫初始化程序」部分。 –