Trabajando con Migraciones en Ruby on Rails 5

4 minuto(s)

Trabajar con Migraciones en Ruby on Rails es muy fácil, solo es cuestión que entiendas los pasos adecuados para que puedas gestionar tablas y los datos que hay en ellas, en este artículo te enseñaremos el proceso para trabajar adecuadamente con migraciones en RoR.

Cuando trabajas con Ruby on Rails (RoR) es muy conveniente emplear las migraciones porque nos brindan una forma consistente y fácil de modificar el esquema de una base de datos a lo largo del tiempo.

Que es una Migración en RoR?

En términos sencillos es una manera de de crear tablas e insertar, eliminar, leer y actualizar datos en una Base de Datos, esta migración se realiza escribiendo código y métodos en un archivo Ruby on Rails, dentro de ese código colocaremos los campos de la tabla, si es una tabla llamada postres, le puedes poner nombre,  stock, precio, url, img, fecha_creacion.

Una ves que terminas de escribir en el código la estructura de la tabla ejecutas un comando en tu consola y kaboon la tabla esta creada

En RoR (Ruby on Rails) puedes ver cada migración como una nueva versión de tu base de datos. Un esquema empieza vacío y cada migración la va modificando agregando y eliminando tablas, columnas o entradas. El Active Record Migration de RoR sabe como actualizar un esquema con el paso del tiempo permitiendo llevar a un estado inicial o avanzado del historial de migraciones. Veamos el ejemplo de una migración en RoR a continuación la estructura para una tabla llamada postres con los campos nombre, precio, stock y la fecha y hora (timestamps):


En el ejemplo anterior se crea un campo id automáticamente y con una propiedad auto incrementable, es decir generará un numero id para cada nuevo registro que se inserte en la tabla postres, el campo timestamps creará 2 columnas una llamada created_at y otro llamado updated_at. Estas columnas son gestionadas automáticamente por el Active Record de RoR.

En ocasiones el sistema de migraciones de RoR Active Record Migrations puede presentar problemas y no saber que hacer para revertir una acción, puedes usar reversible veamos el siguiente ejemplo:

Crear un Migración

Para crear una migración en RoR ejecuta el siguiente comando:


Luego de ejecutar el comando se nos creará una Migración nueva vacía sin datos


Dentro de la carpeta de tu proyecto existe una carpeta llamada db y dentro de ella otra carpeta migrate en donde se almacenan todas las migraciones que vayas creando. Cada migracion se creará con un nombre de archivo similar a 20180831220000_create_postres.rb el nombre de este archivo es creado usando la fecha y hora en que fue creada la migración.

Gestionando Migraciones

Puedes realizar múltiples operaciones en RoR para las migraciones, por ejemplo si deseas agregar un indice a tu tabla ejecuta


Nos crea una migración en donde colocaremos el nuevo campo


Si deseas eliminar un campo o columna de tu tabla ejecuta en tu consola de comandos


Nos generará una migración en donde indicamos que se borre la columna codigo

Escribiendo Migraciones

Como mencionamos podemos crear tablas a nivel de código, si deseas crear una tabla puedes escribir en tu archivo de migración lo siguiente


Le agregamos la opcion Engine = Blackhole en la declaración SQL


También puedes escribir una tabla con la propiedad JOIN TABLE, por ejemplo una relación de muchos productos pertenecen a muchas categorías, puedes escribir


Se creará una migración con 2 campos uno llamado producto_id y otro llamado categoria_id en donde van los ids de los registro relacionados.

También puedes escribir las columnas manualmente


En otro artículo o tutorial te mostraremos ejemplos reales de como nos ayudan las migraciones en RoR (Ruby on Rails).

 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.