部署时需要更新测试服务器数据库,但我没有找到方法。我们没有使用自动迁移,所以我们手动进行。
我可以直接在测试服务器上执行吗?也许是一个控制台程序?
我正在使用 NuGet 调用进行本地开发:Update-Database 我知道我们可以生成脚本文件,我必须手动执行吗?
部署时需要更新测试服务器数据库,但我没有找到方法。我们没有使用自动迁移,所以我们手动进行。
我可以直接在测试服务器上执行吗?也许是一个控制台程序?
我正在使用 NuGet 调用进行本地开发:Update-Database 我知道我们可以生成脚本文件,我必须手动执行吗?
您可以使用 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>
如果您使用 Visual Studio,则可以使用发布功能来执行脚本。在这里查看更多详细信息:
http://learn.iis.net/page.aspx/1081/building-a-web-deploy-package-from-visual-studio-2010/
如果您使用团队基金会服务器,您甚至可以将其自动化:
另外要生成脚本,也许您可以使用 migrate.exe (我认为在获取 nuget 包时它带有 ef 4.3)并在构建后事件中运行它......