Restablecer migraciones de marco de entidad

Resuelto Kind Contributor asked hace 12 años • 18 respuestas

He arruinado mis migraciones, las usé IgnoreChangesen 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-Migrationlo 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?

Kind Contributor avatar Jul 27 '12 06:07 Kind Contributor
Aceptado

Necesitas :

  1. Eliminar el estado: elimine la carpeta de migraciones en su proyecto; Y
  2. Elimine la __MigrationHistorytabla en su base de datos (puede estar debajo de las tablas del sistema); Entonces
  3. Ejecute el siguiente comando en la Consola del Administrador de paquetes:

    Enable-Migrations -EnableAutomaticMigrations -Force
    

    Usar con o sin-EnableAutomaticMigrations

  4. Y finalmente, puedes ejecutar:

    Add-Migration Initial
    
Kind Contributor avatar Jul 26 '2012 23:07 Kind Contributor

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:

  1. Elimine las migraciones existentes de la tabla Migrations_History.

  2. Elimine las migraciones existentes de la carpeta de migraciones.

  3. 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).

  4. 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".

  5. 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.

Greg Gum avatar Mar 17 '2014 10:03 Greg Gum

En Entity Framework Core.

  1. Elimine todos los archivos de la carpeta de migraciones.

  2. Escribe en la consola

    dotnet ef database drop -f -v
    dotnet ef migrations add Initial
    dotnet ef database update
    
  3. (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.

Liam Kernighan avatar Aug 05 '2018 08:08 Liam Kernighan