PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Aktualizowanie bazy danych postgreSQL poprzez migracje EFCore w Azure DevOps

W końcu muszę to naprawić.

Istnieją dwa rozwiązania, które znalazłem, aby rozwiązać ten problem.

  1. Po pierwsze, istnieje wspólna poprawka dla wszystkich baz danych obsługujących migracje Entity Framework :
    • Korzystanie z .NET Core Zadanie, musimy zainstalować narzędzie dotnet ef :Zadanie wyglądałoby tak:

A to byłby YAML (na wypadek, gdybyś chciał go użyć poza potoku wydania):

 - task: [email protected]
  displayName: 'dotnet custom'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'
  • A gdy już zainstalujemy wymagane narzędzia, z CMD lub Bash Zadanie, musimy wykonać taki skrypt:
dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build

Musisz tylko dodać flagę -c w przypadku, gdy w projekcie masz więcej niż jeden kontekst (czasami inne DbContext mogą pochodzić z niektórych pakietów użytkowych).

Zauważ, że dodałem flagę --no-build ponieważ już zbudowałem projekt w potoku kompilacji, aby postępować zgodnie z dobrymi praktykami.

  1. Inną opcją (i tą, której w końcu użyłem), było użycie to zadanie który zasadniczo wykonuje ten sam proces, z tą różnicą, że robi to przy użyciu już skompilowanego pliku .dll plików, dzięki czemu nie będziesz musiał kopiować całego projektu, aby migracje działały. Konfiguracja zadania, chociaż musisz wypełnić wiele danych wejściowych, jest dość prosta i powinna działać również z innymi bazami danych.

Gdybym jednak musiał użyć SQL Server lub MySQL Użyłbym skryptu migracji, ponieważ proces jest znacznie łatwiejszy (wystarczy wygenerować plik .sql i jest to jedyny plik wymagany do wdrożenia migracji).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaktualizować wszystkie kolumny za pomocą INSERT ... ON CONFLICT ...?

  2. Postgres - Jak przekonwertować wiersz z zakresem int na wiersze pośrednie z poszczególnych wartości z tego zakresu?

  3. Sequelize Error:Relacja nie istnieje

  4. Pobierz najnowsze dziecko na rodzica z dużej tabeli — zapytanie jest zbyt wolne

  5. Jak Mod() działa w PostgreSQL