update migraciones framework crear entity-framework database-migration ef-migrations

entity framework - crear - Restablecer las migraciones de Entity-Framework



update database (10)

He arruinado mis migraciones, 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 borro las migraciones en la carpeta e intento y Add-Migration no genera un archivo completo (está vacío, porque no he realizado ningún cambio desde mi última migración, pero ahora la he eliminado).

¿Hay algún comando Disable-Migrations , por lo que puedo volver a ejecutar Enable-Migrations ?


El problema: ha arruinado sus migraciones y le gustaría restablecerlo sin eliminar sus tablas existentes.

El problema: no puede restablecer las migraciones con tablas existentes en la base de datos, ya que EF desea crear las tablas desde cero.

Qué hacer:

  1. Eliminar las migraciones existentes de la tabla Migrations_History.

  2. Eliminar las migraciones existentes de la carpeta Migraciones.

  3. Ejecutar add-migration Reset. Esto creará una migración en su carpeta 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 ya que las tablas ya existen en su base de datos. Así que vaya a la migración y comente todo el código dentro del método "Up".

  5. Ahora ejecuta la base de datos de actualización. Aplicará la migración (aunque no cambie realmente la base de datos) y creará una fila de instantáneas en MigrationHistory.

Ahora ha restablecido sus migraciones y puede continuar con las migraciones normales.


En EF6

  1. Elimine todos sus archivos en la carpeta ''migraciones'' ... Pero no la ''creación inicial'' o ''configuración''.
  2. Eliminar la base de datos.
  3. Ahora ejecute Add-Migration Initial .
  4. Ahora puedes actualizar la base de datos y todo estará bien.

En Entity Framework Core.

  1. Eliminar todos los archivos de la carpeta de migraciones.
  2. Escriba en la consola

dotnet ef base de datos drop -f -v

dotnet ef migraciones agregar inicial

dotnet ef actualización de la base de datos


En EntityFramework 6 intente:

Add-Migration Initial

con el fin de actualizar el archivo de migración inicial.


Mi problema resultó ser que eliminé manualmente la carpeta Migraciones. Hice eso porque quería hacer una copia de seguridad de los contenidos, así que simplemente arrastré la carpeta fuera del proyecto. Más tarde solucioné el problema volviéndolo a colocar (después de hacer una copia de seguridad), luego eliminando la carpeta Migraciones haciendo clic derecho en el Explorador de soluciones y seleccionando Eliminar en el menú emergente.


Necesitas :

  1. Eliminar el estado: eliminar la carpeta de migraciones en su proyecto; Y
  2. Elimine la tabla __MigrationHistory en su base de datos (puede estar en 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 correr:

    Add-Migration Initial


Para arreglar esto, necesitas:

  1. Elimine todos los archivos * .cs en la carpeta Migraciones.

  2. Elimine la _MigrationHistory Table en la base de datos

  3. Ejecute Enable-Migrations -EnableAutomaticMigrations -Force

  4. Ejecutar Add-Migration Reset

Luego, en la public partial class Reset : DbMigration class, debes comentar todas las tablas existentes y actuales:

public override void Up() { // CreateTable( // "dbo.<EXISTING TABLE NAME IN DATABASE> // ... // } ... }

Si pierdes este bit, todo fallará y debes comenzar de nuevo.

  1. Ahora ejecute Update-Database -verbose

Esto debería ser exitoso si ha hecho lo anterior correctamente, y ahora puede continuar con normalidad.



Teniendo en cuenta que esto todavía aparece cuando buscamos EF en .NET Core, publicaré mi respuesta aquí (ya que me ha perseguido mucho). Tenga en cuenta que hay algunas sutilezas con la versión EF 6 .NET (no hay un comando inicial y tendrá que eliminar los archivos de "Instantáneas")

(Probado en .NET Core 2.1)

Aquí están los pasos:

  1. Eliminar la tabla _efmigrationhistory .
  2. Busque toda la solución para los archivos que contienen Instantáneas en su nombre, como ApplicationDbContextSnapshot.cs , y elimínelos .
  3. Ejecutar Add-Migration InitialMigration

Tenga en cuenta: debe eliminar TODOS los archivos de instantáneas . Pasé incontables horas simplemente borrando la base de datos ... Esto generará una migración vacía si no lo haces.

Además, en el # 3 puedes nombrar tu migración como quieras.

Aquí hay algunos recursos adicionales: asp.net CORE Migraciones generadas vacías

Restablecer Entity Framework 7 migraciones


Enable-Migrations -EnableAutomaticMigrations -Force