Em uma arquitetura multicamadas é normal que a classe DbContext
e os arquivos de migrations do EntityFramework acabem ficando em um projeto separado da Webapi.
Nesses casos, é necessário fornecer uma implementação da interface IDesignTimeDbContextFactory
, que será responsável por instanciar o DbContext
em tempo de design, permitindo a geração e aplicação das migrations.
Para gerar as migrations basta navegar até o projeto onde a implementação da factory e os arquivos de configuração com as connection strings se encontram:
cd .\WebapiProject\
E executar a geração das migrations informando o projeto destino:
dotnet ef migrations add migracao_inicial --project ..\MigrationsProject\
Primeiramente, defina as strings de conexão de produção e homologação nos arquivos appsettings.Development.json e appsettings.json, respectivamente.
Para aplicar as migrations nos bancos de produção e homologação, basta definir o cenário desejado em uma variável de ambiente chamada "ASPNETCORE_ENVIRONMENT".
Definindo o ambiente:
$Env:ASPNETCORE_ENVIRONMENT='Development'
Aplicando as migrations no banco configurado no arquivo appsettings.Development.json:
dotnet ef database update
Definindo o ambiente:
$Env:ASPNETCORE_ENVIRONMENT='Production'
Aplicando as migrations no banco configurado no arquivo appsettings.json:
dotnet ef database update