sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL DB bijwerken via EFCore-migraties in Azure DevOps

Ik heb het eindelijk kunnen repareren.

Er zijn twee oplossingen die ik heb gevonden om het probleem op te lossen.

  1. Ten eerste is er een algemene oplossing voor alle databases die Entity Framework-migraties ondersteunen :
    • Een .NET Core gebruiken Taak, we moeten de dotnet ef tool . installeren :De taak zou er als volgt uitzien:

En dit zou de YAML zijn (voor het geval je het buiten de releasepijplijn wilt gebruiken):

 - task: [email protected]
  displayName: 'dotnet custom'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'
  • En zodra we de vereiste tools hebben geïnstalleerd, met een CMD of een Bash Taak, we zullen een script als dit moeten uitvoeren:
dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build

U hoeft alleen de vlag -c . toe te voegen voor het geval je meer dan één context in je project hebt (soms kunnen de andere DbContexts uit sommige nugget-pakketten komen).

Merk op dat ik de vlag --no-build heb toegevoegd aangezien ik het project al in de bouwpijplijn heb gebouwd om goede praktijken te volgen.

  1. De andere optie (en degene die ik uiteindelijk heb gebruikt), is het gebruik van deze taak dat doet in feite hetzelfde proces, met het verschil dat het het doet door uw reeds gecompileerde .dll te gebruiken bestanden, zodat u niet het hele project hoeft te kopiëren om de migraties te laten werken. De opzet van de taak, hoewel je veel invoer moet invullen, is vrij eenvoudig en zou ook met andere databases moeten werken.

Als ik echter SQL Server . zou moeten gebruiken of MySQL Ik zou een migratiescript gebruiken, omdat het proces veel eenvoudiger is (je hoeft alleen maar een .sql te genereren script en dan is het het enige bestand dat nodig is voor het implementeren van de migraties).




  1. Let op:Array naar string conversie in

  2. Controleer of het bestaat, zo ja, update met 1++, zo niet, voeg toe

  3. Wat is de beste manier om sessies voor een PHP-site op meerdere hosts af te handelen?

  4. mysql-fout 2005 - Onbekende MySQL-serverhost 'localhost'(11001)