Restablecer migraciones de marco de entidad
He arruinado mis migraciones, las usé IgnoreChanges
en la migración inicial, pero ahora quiero eliminar todas mis migraciones y comenzar con una migración inicial con toda la lógica.
Cuando elimino las migraciones en la carpeta y Add-Migration
lo intento, no genera un archivo completo (está vacío, porque no he realizado ningún cambio desde mi última migración, pero ahora eliminada).
¿Existe algún comando para desactivar migraciones que pueda volver a ejecutar Enable-Migrations
?
Necesitas :
- Eliminar el estado: elimine la carpeta de migraciones en su proyecto; Y
- Elimine la
__MigrationHistory
tabla en su base de datos (puede estar debajo de las tablas del sistema); Entonces Ejecute el siguiente comando en la Consola del Administrador de paquetes:
Enable-Migrations -EnableAutomaticMigrations -Force
Usar con o sin
-EnableAutomaticMigrations
Y finalmente, puedes ejecutar:
Add-Migration Initial
El problema: ha arruinado sus migraciones y le gustaría restablecerlas sin eliminar sus tablas existentes.
El problema: no puede restablecer las migraciones con tablas existentes en la base de datos porque EF quiere crear las tablas desde cero.
Qué hacer:
Elimine las migraciones existentes de la tabla Migrations_History.
Elimine las migraciones existentes de la carpeta de migraciones.
Ejecute Restablecer adición de migración. Esto creará una migración en su carpeta de Migración que incluye la creación de las tablas (pero no la ejecutará, por lo que no generará errores).
Ahora necesita crear la fila inicial en la tabla MigrationHistory para que EF tenga una instantánea del estado actual. EF hará esto si aplica una migración. Sin embargo, no puede aplicar la migración que acaba de realizar porque las tablas ya existen en su base de datos. Así que vaya a Migración y comente todo el código dentro del método "Arriba".
Ahora ejecute actualizar-base de datos. Aplicará la migración (sin cambiar realmente la base de datos) y creará una fila de instantánea en MigrationHistory.
Ahora ha restablecido sus migraciones y puede continuar con las migraciones normales.
En Entity Framework Core.
Elimine todos los archivos de la carpeta de migraciones.
Escribe en la consola
dotnet ef database drop -f -v dotnet ef migrations add Initial dotnet ef database update
(O para la consola del administrador de paquetes)
Drop-Database -Force -Verbose Add-Migration Initial Update-Database
UPD: hágalo solo si no le importan sus datos persistentes actuales. Si es así, utilice la respuesta de Greg Gum.