Jeg fik endelig ordnet det.
Der er to løsninger, jeg fandt for at løse problemet.
- For det første er der en fælles rettelse for alle de databaser, der understøtter Entity Framework Migrations :
- Brug af en .NET Core Opgave, vi bliver nødt til at installere dotnet ef-værktøjet :Opgaven ville se sådan ud:
Og dette ville være YAML (i tilfælde af at du vil bruge det uden for udgivelsespipelinen):
- task: [email protected]
displayName: 'dotnet custom'
inputs:
command: custom
custom: tool
arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'
- Og når vi har de nødvendige værktøjer installeret, med en CMD eller en Bash Opgave, vi bliver nødt til at udføre et script som dette:
dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build
Du skal bare tilføje flaget -c hvis du har mere end én kontekst i dit projekt (nogle gange kan de andre DbContexts komme fra nogle nugget-pakker).
Bemærk, at jeg tilføjede flaget --no-build da jeg allerede har bygget projektet i byggepipeline for at følge god praksis.
- Den anden mulighed (og den jeg endelig brugte), det har været at bruge denne opgave der grundlæggende udfører den samme proces, med den forskel at den gør det ved at bruge din allerede kompilerede .dll filer, så du ikke behøver at kopiere hele projektet for at få migreringerne til at fungere. Opsætningen af opgaven, selvom du skal udfylde mange input, er den ret ligetil, og den formodes også at fungere med andre databaser.
Men hvis jeg skulle bruge SQL Server eller MySQL Jeg ville bruge et migreringsscript, da processen er meget nemmere (du skal bare generere en .sql script, og så er det den eneste fil, der kræves til at implementere migreringerne).