2012-02-14 10 views

Respuesta

9

Un agradable paseo a través de este se publica aquí: http://thedatafarm.com/data-access/using-ef-4-3-code-first-migrations-with-an-existing-database/

El único cambio que sugeriría es simplemente comentario el código en los métodos arriba y abajo hasta que haya desplegado la migración. Después de eso, puede descomentar el código y eso le permitirá crear una nueva base de datos si lo necesita más adelante.

+0

buen punto, gracias! – enamrik

+0

Esto es un 404 ahora –

+0

Más información aquí http://tinyurl.com/q2hepmw – Spock

8

Parece que lo que estaba buscando es Codebased Migrations que se activa cuando configuro AutomaticMigrationsEnabled = false. Mis modelos se generaron a partir de una base de datos existente. Para activar las migraciones, todo lo que necesitaba hacer era habilitar las migraciones (Enable-Migrations), crear un nuevo archivo de migración nuevo usando Add-Migration, vaciarlo (mis modelos ya están en la base de datos, así que no quiero que EF lo intente crearlos) y desplegar eso. Para implementar, he añadido lo siguiente a mi archivo Global.asax:

protected void Application_Start() 
{ 
     var config= new Configuration(); 
     var migrator = new DbMigrator(config); 
     migrator.Update(); 
} 

Un nuevo __MigrationHistory tabla se creó un nuevo récord y la migración se crean en ella. Este nuevo registro de migración tenía un hash de mis modelos por lo que ahora cualquier cambio en mis modelos se puede programar para mí en futuras migraciones con EF.

Para probar, creé otro archivo de migración (Add-Migration), agregué una nueva propiedad a un modelo, ejecuté Add-Migrations que creó el nuevo campo y luego implementé mi aplicación. La migración se ejecutó como se esperaba.

Cuestiones relacionadas