You are on page 1of 7

INTRODUCCIN

Code first migrations bsicamente nos da soporte para realizar


actualizaciones

de

nuestra

base

de

datos.

qu

podemos

actualizar?, pues bsicamente podremos crear, renombrar y borrar


tanto tablas como columnas, as como crear ndices, claves ajenas o
incluso ejecutar sentencias

SQL

para

actualizar

registros,

Code

First se considera la alternativa ms adecuada para aquellos casos en


los que hay que crear la base de datos desde cero en conjunto con la
aplicacin, y es el equipo de desarrollo quien debe hacerlo.
Usando Code First literalmente no deberemos escribir una sola
sentencia SQL .

CODE FIRST MIGRATIONS

EL CONCEPTO DE MIGRACIN
Cada vez que realizamos un cambio en nuestro modelo de base de
datos, deberamos generar un script que refleje los cambios
realizados en la base de datos. Adems, para poder llevar un control
de
los
cambios, de
igual
modo
que
hacemos
con
el
cdigo, deberamos anotar en la base de datos la revisin de la
misma. De esta forma podemos saber en todo momento, en que
versin se encuentra cada base de datos de cada uno de los entornos
que dispongamos y aplicar slo los cambios necesarios.
Cada script de cambios y su nmero de revisin correspondiente,
conforman una migracin. Y para ser correctos del todo, deberamos
de incluir tambin la opcin de deshacer cada uno de nuestros
cambios en la misma, en caso de que algo no fuera tal y como
queremos.
Por tanto, escribir un script de migracin que gestione el versionado
automticamente y permita incrementar o reducir el nmero de
revisin fcilmente, puede resultar una tarea compleja si la hacemos
solo con SQL. Por ello podemos apoyarnos en frameworks que nos
faciliten la vida un poco.

NUESTRA PRIMERA MIGRACIN CON ENTITY FRAMEWORK


Lo primero que necesitamos es el modelo, para ello definimos par
clases:

Figura 01 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

Como siguiente paso, creamos el contexto para trabajar con Entity


Framework y relacionamos las dos clases anteriores:

Figura 02 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

Luego de definir las clases, accedemos a la consola de Nuget y


habilitamos el uso de Migrations con el comando enablemigrations:

Figura 03 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

Una vez finalizada la ejecucin del comando, vamos a encontrar una


nueva carpeta en el proyecto con el nombre Migrations, que tiene

una clase llamada Configuration.cs en donde es posible modificar el


comportamiento normal de las migraciones:

Figura 04 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

Como ya tenemos listo el modelo de clases, vamos a crear la primera


migracin, para ello volvemos a la consola de Nuget y
ejecutamos add-migration Initial, donde Initial es el nombre de la
migracin:

Figura 05 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

Dicha migracin la vamos a encontrar en la carpeta Migrations:

Figura 06 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

La clase generada tienes dos mtodos, Up para hacer la creacin de


los objetos y Down para eliminarlos:

Figura 07 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

Pero antes de ejecutar la migracin, vamos a ir a la clase


Configuration.cs y en el mtodo Seed el cual es llamado luego de que
se ejecuta la migracin vamos a definir unos datos iniciales:

Figura 08 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

Y finalmente para ejecutar la migracin en la consola de Nuget


ejecutamos update-database:

Figura 09 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

Y listo, ya tenemos disponible la base datos:

Figura 10 FUENTE HTTP://WWW.JULITOGTU.COM/2014/12/22/ENTITY-FRAMEWORK-CREAR-LA-BASE-DE-DATOS-CON-CODEFIRST-MIGRATIONS/

CONCLUSIN

Podemos decir que para los desarrolladores CodeFirst es una gran


alternativa, ya que podemos definir todas las clases de dominio desde
el cdigo de nuestra aplicacin, e incluso personalizar y definir ciertas
situaciones particulares que requieran una resolucin particular en la
base de datos. La utilizacin de migraciones marca una diferencia
muy importante con ModelFirst, ya que con esta ltima solo se nos
generaba el cdigo SQL de todo el modelo, sin tener en cuenta si ya
haba estructuras creadas y su estado.

You might also like