Net Core 2 - 实体框架:更新 - 不同环境的数据库

问题描述 投票:1回答:1

事实:

  • net core 2.0项目
  • 实体框架(代码优先)
  • 针对不同环境的不同appsettings.json文件 我利用Package Manager Console生成我的数据库脚本(Add-Migration,Update-Database)

如果我运行PM>“Get-DbContext”,它会从我的appsettings.Development.json文件中恢复信息GREAT,这就是我大部分时间都想要的!

但是,如何告诉它从appsettings.Staging.json中提取db变量而不是PM命令的开发?

我尝试创建新的launchSettings.json配置文件并设置“ASPNETCORE_ENVIRONMENT”:“暂存”,但一切似乎都尊重除了PM。

PS解决它使用脚本迁移生成脚本但我想快速UP和DOWN我得到并且不会用它来部署到prod

asp.net-core entity-framework-6 ef-migrations
1个回答
5
投票

没有详细记录,但您必须通过在程序包管理器控制台中运行此命令来手动更改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

© www.soinside.com 2019 - 2024. All rights reserved.