Migraciones en Ruby on Rails

¿Que es una Migración?

Las migraciones son el modo conveniente de cambiar el esquema de tu base de datos a través del tiempo de una manera consistente y fácil.

Ellas utilizan un lenguaje de Definición de Esquemas (DSL) en Ruby por lo que no tienes que escribir SQL a mano, permitiéndole al esquema y a los cambios en la base de datos ser independientes.

Puedes pensar cada migración como una nueva ‘versión’ de la base de datos. Un esquema comienza sin nada dentro, y cada migración lo modifica para añadir o remover tablas, columnas, o registros.

Active Record conoce como actualizar tu esquema a lo largo de su vida, trayendo desde cualquier punto de su historia hasta la última versión.

Active Record actualizará también el fichero db/schema.rb para emparejar la estructura modificada de tu base de datos.

 

Lo primero que tenemos que hacer si queremos realizar cambios en nuestra BBDD es crear una migración.

¿Como se crea un migración?

Si seguimos este tipo de anotación especial en camelCase, nos generara automáticamente una columna en nuestra BBDD.

Add –Añade

Description–> Nombre de la Columna

ToCourses –> En la Tabla que la vamos a crear

description:text –> Campos de la columna correspondiente y su tipo

ruby bin/rails generate migration AddDescriptionToCourses description:text

Si aparece de la siguiente manera, se creo satisfactoriamente:

Ahora en la carpeta db/migrate se encuentra la migracion creada.

Esto por si solo no nos genera los cambios en nuestra BBDD.

Ejecutar Migración

Para ejecutar nuestra migración ejecutamos:

ruby bin/rails db:migrate

Si no hiciéramos esta migración, obtenemos un error «pending migration error» al levantar el servidor.

Al hacer una migración, no modifica las vistas hechas automáticamente al inicio. Hay que modificarlas manualmente.