Net Core 2 - Entity Framework: Update-Database of different environment

Net Core 2 - Entity Framework: Update-Database of different environment

事实:

如果我 运行 PM>"Get-DbContext" 它会带回从我的 appsettings.Development.json 文件中提取的信息,太棒了,这就是我大部分时间想要的!

但是我如何告诉它从 appsettings.Staging.json 中提取数据库变量而不是为 PM 命令开发?

我尝试创建新的 launchSettings.json 配置文件并设置 "ASPNETCORE_ENVIRONMENT":"Staging" 但除了 PM 之外,其他一切似乎都符合要求。

PS 解决它以使用 Script-Migration 生成脚本,但我想要快速的 UP 和 DOWN 我不会用它来部署到 prod

没有很好的记录,但您可能必须通过 运行在程序包管理器控制台

中执行此命令手动更改 ASPNETCORE_ENVIRONMENT
PM> $env:ASPNETCORE_ENVIRONMENT='Staging'

然后你可以运行这个命令来验证它是否指向你想要的数据库:

PM> Get-DbContext

哪个会踢出

providerName                            databaseName          dataSource                                 options
------------                            ------------          ----------                                 -------
Microsoft.EntityFrameworkCore.SqlServer myDatabase            tcp:fake.database.windows.net,1433           None

然后 运行 您的命令照常进行。示例:

Update-Database

参考命令:https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell