sql >> Base de Datos >  >> RDS >> PostgreSQL

Actualización de base de datos postgreSQL a través de migraciones de EFCore en Azure DevOps

Finalmente pude arreglarlo.

Hay dos soluciones que encontré para solucionar el problema.

  1. Primero, hay una solución común para todas las bases de datos que admiten migraciones de Entity Framework :<último>
  2. Uso de un .NET Core Tarea, tendremos que instalar la herramienta dotnet ef :La tarea se vería así:

Y este sería el YAML (en caso de que quieras usarlo fuera de la tubería de lanzamiento):

 - task: [email protected]
  displayName: 'dotnet custom'
  inputs:
    command: custom
    custom: tool
    arguments: 'install --global dotnet-ef --version 3.1.4 --ignore-failed-sources'
  • Y una vez tengamos instaladas las herramientas necesarias, con un CMD o un Bash Tarea, tendremos que ejecutar un script como este:
dotnet ef database update -c <DBCONTEXT> -p <PROJECT> -s <STARTUP_PROJECT> -v --no-build

Solo tienes que añadir la bandera -c en caso de que tenga más de un contexto en su proyecto (a veces, los otros DbContexts pueden provenir de algunos paquetes nugget).

Observe que agregué la bandera --no-build dado que ya construí el proyecto en la canalización de compilación para seguir las buenas prácticas.

  1. La otra opción (y la que finalmente usé), ha sido usar esta tarea que básicamente hace el mismo proceso, con la diferencia de que lo hace usando su .dll ya compilado archivos, por lo que no tendrá que copiar todo el proyecto para que las migraciones funcionen. La configuración de la tarea, aunque tiene que completar muchas entradas, es bastante sencilla y se supone que también funciona con otras bases de datos.

Sin embargo, si tuviera que usar SQL Server o MySQL Usaría un script de migraciones, ya que el proceso es mucho más fácil (solo necesita generar un .sql script y luego es el único archivo requerido para implementar las migraciones).