29

Comencé a usar el comando add-migration en la consola del administrador de paquetes para generar las migraciones para mi modelo. Mi pregunta es, el método arriba y abajo. Supongo que el objetivo del método down es eliminar todas las dependencias y soltar las tablas si ya están en la base de datos. ¿También que el método down se ejecutará antes del método up? El método de arriba es el inverso, crear/actualizar tablas/índices, etc.Código C#: primera migración, arriba/abajo?

A veces, cuando utilizo esto, el método down obtiene muchas tablas de creación que luego se eliminan. Recientemente creó y eliminó muchas tablas y casi lo mismo sucedió en el método up. ¿Por qué?

Respuesta

53

El método Up actualiza su base de datos desde su estado actual (representado por su migración anterior) al estado esperado por su migración de código actual. El método Down realiza la operación inversa: elimina todos los cambios de la migración actual y revierte la base de datos al estado esperado por la migración anterior. Es como instalar/desinstalar la migración. Solo uno de estos métodos se ejecuta cuando llama al update-database. Para usar el método Down, debe especificar explícitamente la migración objetivo para su actualización. Si la migración de destino es la anterior, la API de migración usará automáticamente el método Down y degradará su base de datos.

20

Solo para agregar a @Ladislav Mrnka. Necesitaba usar abajo() por primera vez y me tomé un tiempo para hacer que funcione, por lo que:

Update-Database -Target:201407242157114_46 

Donde mi última migración es 47 (donde se añadió cosas nuevas). Here's a nice explanation de cómo deshacer la base de datos y eliminar una mala migración.

Espero que pueda ayudar a otros aprendices de mago :)

Cuestiones relacionadas