ef core don´t use ASPNETCORE_ENVIRONMENT during update-database

后端 未结 4 744
情话喂你
情话喂你 2020-12-04 17:40

I use visual studio to update all my environments with a certain migration. It had worked fine using the command below.

update-database -Migration initMigrat         


        
相关标签:
4条回答
  • 2020-12-04 18:06

    I had the same problem like the reporter of this issue and tried out the recent solution in the Package Manager Console (PMC) and set the environment variable with the command:

    $env:ASPNETCORE_ENVIRONMENT='YOUR_ENVIRONMENT'
    

    Unfortunetly I have a ConsoleApplication and use the generic host builder on startup with Host.CreateDefaultBuilder(). In this scenario the environment variable prefix is not ASPNETCORE_ but DOTNET_.

    For me this command works in PMC:

    $env:DOTNET_ENVIRONMENT='YOUR_ENVIRONMENT'
    

    I want to thank Martin Florin and others to guide me in the correct direction.

    0 讨论(0)
  • 2020-12-04 18:13

    According to EntityFrameworkCore#6846 the correct solution is to use the --environment option, the dotnet ef commands do not respect ASPNETCORE_ENVIRONMENT

    dotnet ef database update --environment Production
    
    0 讨论(0)
  • 2020-12-04 18:16

    To set the ASPNETCORE_ENVIRONMENT variable in Package Manager Console (PMC) , inside visual studio, to Production use this command first

    $env:ASPNETCORE_ENVIRONMENT='Production'
    

    Then you can use

    Update-Database
    

    normally.

    0 讨论(0)
  • 2020-12-04 18:18

    Using the package manager in Visual Studio was a dead end for me. The solution was:

    1. Add below in .csproj in the starter project in solution:

      <ItemGroup>
          <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
      </ItemGroup>
      
    2. Open the command tool(cmd) and go the the same folder as .csproj for start project are located(Default project).

    3. Run the command as Anton Toshik suggested set ASPNETCORE_ENVIRONMENT=Production

    4.Then run the command dotnet ef database update initMigrationProduct -c ProductContext And now it works.

    REMARK: in this command database and update have changed place since earlier versions. And there are no argument/code for migration. The docs explain more after this clarification:
    https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet

    0 讨论(0)
提交回复
热议问题