Asp.net core Net核心2-实体框架:更新不同环境的数据库
事实:Asp.net core Net核心2-实体框架:更新不同环境的数据库,asp.net-core,entity-framework-6,entity-framework-migrations,Asp.net Core,Entity Framework 6,Entity Framework Migrations,事实: net核心2.0项目 实体框架(代码优先) 不同环境下的不同appsettings.json文件 我利用PackageManager控制台生成我的DB脚本(添加迁移、更新数据库) 如果我运行PM>“Get-DbContext”,它会从我的appsettings.Development.json文件中返回信息——太好了,这就是我大多数时候想要的 但是我如何告诉它从appsettings.Staging.json中提取db变量,而不是为PM命令进行开发? 我尝试创建新的launchSet
- net核心2.0项目
- 实体框架(代码优先)
- 不同环境下的不同appsettings.json文件 我利用PackageManager控制台生成我的DB脚本(添加迁移、更新数据库)
PS通过脚本迁移来生成脚本,但我希望得到快速的上下转换,并且不会使用它部署到prod,这一点没有很好的文档记录,但您可以通过在Package Manager控制台中运行此命令手动更改ASPNETCORE_环境
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
对命令的引用:launchSettings.json仅在点击F5或Ctrl+F5时由Visual Studio 2017使用。ASP.NET核心本身不使用它。您必须在powershell或命令行(cmd.exe)中设置环境变量。谢谢您为我指出了正确的方向。如前所述,这似乎只适用于.net core 2.0(这是OP的情况)。它不适用于VS2019。环境目前没有改变。@user3172616这在VS2019上对我有效,尽管我刚刚进行了更新,所以可能是他们已经修复的东西。