W końcu muszę to naprawić.
Istnieją dwa rozwiązania, które znalazłem, aby rozwiązać ten problem.
- 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.
- 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).