sql >> Database teknologi >  >> RDS >> PostgreSQL

Opdatering af postgreSQL DB gennem EFCore-migreringer i Azure DevOps

Jeg fik endelig ordnet det.

Der er to løsninger, jeg fandt for at løse problemet.

  1. 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.

  1. 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).




  1. Sådan får du værdi fra en tabelkolonne, når der findes to kolonner af samme navn i en sql join

  2. Sådan returneres poster i korrekt rækkefølge i PostgreSQL

  3. Hvad svarer til Oracles REF CURSOR i MySQL, når du bruger JDBC?

  4. Hvordan ved jeg, hvornår en MySQL-OPDATERING var vellykket i forhold til faktisk opdaterede data?