Código C# - Primera migración, arriba / abajo?


Comenzó 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 propósito 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 up es entonces el inverso, ¿crear / actualizar tablas / índices, etc.?

A veces, cuando uso esto, el método down obtiene mucho de crear tablas que luego se dejan caer? Recientemente creó y dejó caer muchas tablas y casi lo mismo sucedió en el método up. ¿Por qué?

Author: Ladislav Mrnka, 2012-03-19

2 answers

El método Up actualiza su base de datos de 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 se llama a update-database. Para usar el método Down debe especificar explícitamente la migración de destino para su actualización. Si la migración de destino es la antigua, la API de migración utilizará automáticamente el método Down y degradará su base de datos.

 59
Author: Ladislav Mrnka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-09 01:54:12

Solo para añadir a @Ladislav Mrnka. Necesitaba usar Down () por primera vez y me tomó algún tiempo hacerlo funcionar, así que:

Update-Database -Target:201407242157114_46

Donde mi última migración es 47 (donde se agregaron cosas nuevas). Aquí hay una buena explicación de cómo revertir la base de datos y eliminar una migración incorrecta.

Espero que pueda ayudar a otros aprendices de mago:)

 21
Author: HerGiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-09 14:40:58