update tutorial migraciones framework first español code entity-framework entity-framework-4.3 code-first-migrations

entity-framework - tutorial - migraciones entity framework



¿Cómo crear una base de datos usando el código de las primeras migraciones? (2)

Tengo un proyecto ASP.NET MVC 3 que usa Entity Framwork 4.3 y sus migraciones. Ahora quiero que Entity Framework cree una base de datos para mí utilizando las migraciones que ya tengo. Cuando trato de ejecutar el script Update-Database, me da lo siguiente:

Update-Database -Verbose -ProjectName AssemblyWithMigrations -StartUpProjectName WebProjectAssembly No migrations configuration type was found in the assembly ''/* my name of assembly */''. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration).

Pero, cuando intento ejecutar Enable-Migrations , veo lo siguiente:

Migrations have already been enabled in project ''AssemblyWithMigrations ''. To overwrite the existing migrations configuration, use the -Force parameter.

Entonces, el problema es que EF intenta resolver la versión de migración actual para actualizar la base de datos, supongo. Pero la base de datos no existe y obviamente falla.

La pregunta es: ¿cómo usar las migraciones de EF para crear una base de datos si no existe? O, ¿cuál es la forma correcta de hacerlo usando la consola Nuget?

En resumen, lo que quiero: 1. ejecutar el comando (quizás update-database ) que creará la base de datos utilizando mi archivo web.config 2. todas las migraciones se aplicarán a la base de datos creada en su orden de creación.

Gracias. :)


El uso de las migraciones es muy útil, pero a veces me parece mejor usar las siguientes afirmaciones cuando se trabaja con bases de datos.

Estrategias de inicialización de la base de datos: use cualquiera de las declaraciones comentadas que sean relevantes para usted.

public DataContext(): base("DefaultConnection") { // Database.SetInitializer<DataContext>(new CreateDatabaseIfModelChanges<DataContext>()); // Database.SetInitializer<DataContext>(new CreateDatabaseIfNotExists<DataContext>()); // Database.SetInitializer<DataContext>(new DropCreateDatabaseAlways<DataContext>()); }


Me doy cuenta de que esta es una vieja pregunta, pero qué demonios ...

Para habilitar las migraciones para crear la base de datos inicial, he encontrado que los siguientes trabajos funcionan bien.

  1. Elimine su base de datos desde el Explorador de objetos de SQL Server
  2. Elimine todas sus migraciones existentes desde la carpeta Migraciones.
  3. En Package-Management-Console escriba "Add-Migration InitialCreate"

    [opcional, dependiendo de su inicializador de base de datos]

  4. En Package-Management-Console escriba "update-database"

Esto le dará un solo script de migración que lo llevará de "no tener base de datos" a tener una base de datos que coincida con su modelo actual.