Migraciones con Entity Framework Core
Migraciones
Las migraciones nos proporcionan un manera de controlar los cambios de esquema en la BD y Entity Framework Core Migrations actualiza el esquema de la base de datos en lugar de crear una nueva base de datos.
Para realizar las migraciones podemos usar Package Manager Console (PMC) o la interfaz de línea de comandos (CLI).
Migración inicial
La realizamos después de definir nuestro modelo inicial(valga la redundancia), ejecutando el siguiente comando:
PMC
Add-Migration InitialCreate
CLI
dotnet ef migrations add InitialCreate
Este comando agrega 3 archivos al proyecto dentro del directorio Migrations.
* El archivo principal que contiene las operaciones necesarias para realizar la migracion y revertirla.
* El segundo archivo (metadatos) contiene información que usa EF.
* El tercer archivo es un snapshot de nuestro modelo actual que servirá para determinar los nuevos cambios al realizar una siguiente migración.
Para actualizar nuestro esquema,ejecutamos el siguiente comando:
PMC
Update-Database
CLI
dotnet ef database update
Añadiendo otras migraciones
Realizamos otra migración para actualizar nuestro esquema después de haber efectuado algunos cambios en nuestro modelo,se recomienda nombrarla con algo que describa el cambio,por ejemplo,si el cambio fue para guardar una foto de los clientes realizamos la migración con el nombre AddCustomerPhoto.
PMC
Add-Migration AddCustomerPhoto
CLI
dotnet ef migrations add AddCustomerPhoto
Y actualizamos nuestro esquema con el siguiente comando:
PMC
Update-Database
CLI
dotnet ef database update
NOTA:Revisar siempre las migraciones antes de ejecutar Update para agregar/modificar implementaciones adicionales en caso de requerirlas.
Revertir migración
Para revertir una migración aplicada, debemos especificar el nombre de la migración a la que se desea regresar al comando siguiente:
PMC
Update-Database [LastMigration]
CLI
dotnet ef database update [LastMigration]
Eliminar migración
Para eliminar la última migración aplicada ejecutamos el siguiente comando:
PMC
Remove-Migration
CLI
dotnet ef migrations remove