Fusionar migraciones en entidad-framework-core

asp.net-core c# entity-framework entity-framework-core

Pregunta

¿Es posible fusionar todos los archivos de migración en uno?

Creé la migración inicial.

dotnet ef migrations add InitialMigration

Fuente

Cuando tengo un cambio de modelo, creo una nueva actualización de migración.

Pero ahora tengo demasiados archivos de actualización de migración. ¿Es posible fusionar todos los archivos de migración a uno?

Fuera de la base de datos del curso no es una opción, tengo que preservar los datos!

Respuesta aceptada

EF 6.X tiene una opción IgnoreChanges . Ese es el ajuste perfecto para su escenario. Pero desafortunadamente no es una característica disponible en el núcleo de EF.

Pero hay una solución.

Paso 1: elimine todos los scripts de migración en la carpeta Migraciones.

Paso 2: En la consola del administrador de paquetes: ejecuta

PM> Add-Migration InitialCreate

Paso 3: Eliminar el código de los métodos Up() y Down() . Antes de hacer esto, mantenga esos métodos guardados en otro lugar, ya que los necesitaremos nuevamente en el paso 5.

Paso 4: ejecutar:

 PM> Update-Database

Insertará un nuevo registro en la tabla __EFMigrationsHistory .

Paso 5: Después de eso, complete el .._InitialCreate Up() y Down() del script de migración anterior (es decir, .._InitialCreate ) Up() y Down() del contenido guardado en un lugar seguro del Paso 3 .

Eso es. Ahora solo tienes 1 archivo de migración :)

Nota: EF Core con la consola de Package Manager (PM): Package Manager Console


Respuesta popular

Una forma de hacerlo es eliminar físicamente todos los archivos de migración y agregar uno nuevo. Si sus migraciones están en la carpeta "Migraciones", simplemente puede eliminarla, de lo contrario también deberá eliminar su archivo "ModelSnapshot". Creo que este enfoque puede resolver su problema.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow