无法使用Asp.net Boilerplate更新登台数据库,但可以通过简单的EFCore项目正常运行

时间:2018-09-04 12:34:15

标签: entity-framework-core aspnetboilerplate

我将Asp.Net Boilerplate(3.8.1)与Entity Framework Core一起使用。我有3个环境(开发,暂存,生产),所以我的.Web.Host项目中有3个appsettings.json(每个都有默认的ConnectionStrings指向各自的数据库)。

如果我启动Update-Database->我的开发数据库(在appsettings.json中指定)已正确更新

从EFCore 2.0开始,您必须设置en env变量以更新登台数据库(请参见ef core don´t use ASPNETCORE_ENVIRONMENT during update-database)。

我尝试了一下(将env变量设置为暂存),但它与我的Asp.Net Boilerplate项目不兼容。我使用简单的EFCore进行了快速尝试,并且设置环境似乎无效。

还有另一种方法吗?

1 个答案:

答案 0 :(得分:0)

我要这样做的方式是这样的: 如果发布中发生架构更改,则我使用dotnet cli工具导出迁移脚本。

例如:

dotnet ef migrations script -i -o "C:\temp\mychanges.sql"

这是一个幂等脚本,仅当尚未将迁移应用于数据库时才应用迁移。如果要部署到可能每个迁移不同的多个数据库,这将很有用。