En un proyecto de mediana o alta escala, la estructura de la base de datos está en constante cambio, ya sea porque se introducen nuevos catálogos a la aplicación, porque se modifique el tipo de un dato, se agreguen llaves, o se eliminen campos, la base de datos no tiene la misma forma de principio a fin. Esta naturaleza de cambios requiere que de alguna forma, llevemos control de las modificaciones que se hacen a la estructura de la base de datos, y de ser posible, que podamos revertirlos en caso de que algo no haya salido como esperamos.
Comúnmente conocidas como migraciones de esquema, decimos que una migración es como se conoce a los cambios incrementales y reversibles al esquema de la base de datos, éste tipo de archivos describen cambios al esquema que se pueden ejecutar de uno en uno, por lo que los llamamos incrementales, y que al mismo tiempo pueden ser revertidos.
Recuerda que nos referimos al esquema de la base de datos, como una descripción de la estructura de la base de datos. En Rails, esta descripción se hace con Rails en un lenguaje definido por el módulo de migraciones del framework. De esta manera, podrás visualizar la estructura en un archivo de Rails, puedes ver un ejemplo a continuación:
En Rails, las migraciones residen en la carpeta migrations dentro de la carpeta db, que al mismo tiempo contiene otros archivos relacionados a la base de datos, o incluso la base de datos misma. Cada migración se almacena en un archivo distinto, cuyo nombre se compone de dos elementos: un texto descriptivo del cambio y la fecha en que fue generada la migración, en formato de timestamp.
A través de la utilidad de la terminal de Rails, se pueden ejecutar las migraciones, como normalmente nos referimos a la ejecución del cambio en la migración, así mismo, se pueden revertir dichas migraciones, para deshacer los cambios de la migración.
Como parte de nuestra base de datos, Rails genera una tabla especial de nombre migrations, en la cuál almacena qué migraciones ya fueron ejecutadas y cuáles no, esto nos permite ejecutar únicamente migraciones nuevas, y saber cuáles podemos revertir y cuáles no.
Si alguna vez has usado Git, las migraciones son como un control de versiones para el esquema de la base de datos, las herramientas y características antes mencionadas, describen un sistema de control de versiones para los cambios a la estructura. Este sistema es importante porque permite intercambiar las modificaciones a la estructura entre todo el equipo, incluso sin tener que informar que se hicieron algunas modificaciones.
En un entorno de desarrollo, Rails reportará al ejecutar el proyecto que hay migraciones pendientes por realizar, para que todas las personas involucradas en el proyecto, sepan que hay nuevos cambios. Al mismo tiempo, gracias a que los archivos describen las modificaciones, no es necesario que cada persona en el equipo sepa cómo realizar los cambios, basta con ejecutar el comando de ejecución de migraciones, y éstos se realizarán.
También importante, es que en caso de que una migración haya ejecutado un cambio contraproducente, puede ser revertido con un comando, a través de la utilidad de terminal de Rails.
El concepto de migraciones puede también ser encontrado en otros frameworks MVC populares como Laravel, Django, y en algunos frameworks para la base de datos como Sequelize de JavaScript, por lo que podemos concluir que son un estándar de la industria para el control de cambios a la estructura de la base de datos.
Continuemos.
-
check_circle_outlineMódulo 1 | 10 clases
Introducción al framework
expand_more -
check_circle_outlineMódulo 2 | 9 clases
Primeros pasos con Rails
expand_more -
check_circle_outlineMódulo 3 | 10 clases
Manejo de datos
expand_more-
done_all
Clase 1
Introducción al bloque
-
done_all
Clase 2
MIgraciones en Rails
-
done_all
Clase 3
Crear la base de datos y primer migración
-
done_all
Clase 4
ID y timestamps
-
done_all
Clase 5
Modelos
-
done_all
Clase 6
Pruebas unitarias
-
done_all
Clase 7
Primera prueba unitaria
-
done_all
Clase 8
Primera validación del modelo
-
done_all
Clase 9
El ActiveRecord
-
done_all
Clase 10
Acercamiento a las consultas
-
-
check_circle_outlineMódulo 4 | 6 clases
REST
expand_more -
check_circle_outlineMódulo 5 | 9 clases
Construye tu propio CRUD
expand_more -
check_circle_outlineMódulo 6 | 10 clases
Controladores y rutas
expand_more -
check_circle_outlineMódulo 7 | 18 clases
Modelos
expand_more -
check_circle_outlineMódulo 8 | 13 clases
Vistas y Formularios
expand_more -
check_circle_outlineMódulo 9.-
Examen del curso
expand_more-
done_all
Examen
Examen final del curso
-