我将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进行了快速尝试,并且设置环境似乎无效。
还有另一种方法吗?
答案 0 :(得分:0)
我要这样做的方式是这样的: 如果发布中发生架构更改,则我使用dotnet cli工具导出迁移脚本。
例如:
dotnet ef migrations script -i -o "C:\temp\mychanges.sql"
这是一个幂等脚本,仅当尚未将迁移应用于数据库时才应用迁移。如果要部署到可能每个迁移不同的多个数据库,这将很有用。