我需要在部署时更新测试服务器数据库,但我找不到办法。 我们没有使用自动迁移,因此我们手动完成。
我可以直接在测试服务器上执行吗?也许是一个控制台程序?
我正在使用NuGet调用进行本地开发:更新数据库 我知道我们可以生成脚本文件,我是否必须手动执行?
答案 0 :(得分:2)
您可以使用MigrateDatabaseToLatestVersion数据库初始化程序通过代码或配置执行迁移。在代码中,您将在应用程序启动时执行以下操作:
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>
答案 1 :(得分:0)
如果您使用Visual Studio,则可以使用发布功能来执行脚本。在这里寻找更多特色:
http://learn.iis.net/page.aspx/1081/building-a-web-deploy-package-from-visual-studio-2010/
如果您使用团队基金会服务器,您甚至可以自动化它:
同样要生成脚本,也许你可以使用migrate.exe(它来自ef 4.3我认为在获取nuget包时)并在后期构建évent中运行...