¿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.