sql >> Databasteknik >  >> RDS >> PostgreSQL

Uppdatering av postgreSQL DB genom EFCore-migreringar i Azure DevOps

Jag fick äntligen fixa det.

Det finns två lösningar jag hittade för att lösa problemet.

  1. För det första finns det en gemensam fix för alla databaser som stöder Entity Framework Migrations :
    • Använda en .NET Core Uppgift, vi måste installera dotnet ef-verktyget :Uppgiften skulle se ut så här:

Och det här skulle vara YAML (om du vill använda den utanför releasepipelinen):

 - task: [email protected]
  displayName: 'dotnet custom'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'
  • Och när vi har de nödvändiga verktygen installerade, med en CMD eller en Bash Uppgift, vi måste köra ett skript som detta:
dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build

Du behöver bara lägga till flaggan -c om du har mer än ett sammanhang i ditt projekt (ibland kan de andra DbContexts komma från vissa nugget-paket).

Lägg märke till att jag lade till flaggan --no-build eftersom jag redan byggt projektet i pipeline för att följa god praxis.

  1. Det andra alternativet (och det jag till slut använde), det är att använda denna uppgift som i princip gör samma process, med skillnaden att den gör det genom att använda din redan kompilerade .dll filer, så att du inte behöver kopiera hela projektet för att få migreringarna att fungera. Inställningen av uppgiften, även om du måste fylla i många ingångar, är den ganska enkel, och den är tänkt att fungera med andra databaser också.

Men om jag var tvungen att använda SQL Server eller MySQL Jag skulle använda ett migreringsskript, eftersom processen är mycket enklare (du behöver bara skapa en .sql skript och då är det den enda filen som krävs för att distribuera migreringarna).




  1. Byt namn på tabeller på ett säkert sätt med seriella primärnyckelkolumner

  2. Få det vanligaste värdet för varje värde i en annan kolumn i SQL

  3. MySQL Släpp flera kolumner

  4. Hur man använder OR &AND i WHERE-satsen i mysql