PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Atualizando o banco de dados postgreSQL por meio de migrações do EFCore no Azure DevOps


Finalmente consegui consertar.

Existem duas soluções que encontrei para corrigir o problema.
  1. Primeiro, há uma correção comum para todos os bancos de dados que suportam migrações do Entity Framework :
    • Usando um .NET Core Tarefa, teremos que instalar a ferramenta dotnet ef :A tarefa ficaria assim:



E este seria o YAML (caso você queira usá-lo fora do pipeline de lançamento):
 - task: [email protected]
  displayName: 'dotnet custom'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'
  • E assim que tivermos as ferramentas necessárias instaladas, com um CMD ou um Bash Tarefa, teremos que executar um script como este:
dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build

Você só precisa adicionar o sinalizador -c caso você tenha mais de um contexto em seu projeto (às vezes os outros DbContexts podem vir de alguns pacotes nugget).

Observe que adicionei o sinalizador --no-build pois já construi o projeto no pipeline de build para seguir boas práticas.
  1. A outra opção (e a que finalmente usei) foi usar esta tarefa que basicamente faz o mesmo processo, com a diferença de que o faz usando seu .dll já compilado arquivos, para que você não precise copiar o projeto inteiro para fazer as migrações funcionarem. A configuração da tarefa, embora você precise preencher muitas entradas, é bastante direta e deve funcionar com outros bancos de dados também.

No entanto, se eu tivesse que usar o SQL Server ou MySQL Eu usaria um script de migração, já que o processo é muito mais fácil (você só precisa gerar um arquivo .sql script e, em seguida, é o único arquivo necessário para implantar as migrações).