db/migrate
y que contiene instrucciones para modificar el esquema de la base de datos (crear tablas, agregar columnas, eliminar columnas, eliminar tablas, etc.).published_at
a la tabla products
podemos ejecutar el siguiente comando:db/migrate
tendría lo siguiente:published
de tipo boolean
y published_at
de tipo datetime
de la siguiente forma:change
de la migración.add_column
para agregar una columna. Como mínimo debes pasarle 3 argumentos: la tabla a la que quieres agregarle la columna, el nombre de la columna y el tipo de datos. Por ejemplo:add_column
recibe un cuarto argumento, un hash de opciones, allí puedes pasarle otras opciones, por ejemplo:add_reference
. Por ejemplo:remove_column
pasándole los mismos argumentos que add_column
. Por ejemplo:rename_column
para cambiar el nombre de una columna. Por ejemplo, para cambiar el nombre de la columna published_at
por published_date
:change_column
. Como mínimo debes pasarle el nombre de la tabla, el nombre de la columna y el nuevo tipo. Por ejemplo:reversible
add_column
, remove_column
, etc.) son reversibles.rails db:rollback
.reversible
para escribir código que se va a ejecutar al migrar y reversar independientemente:reversible
es útil para hacer migraciones de datos (p.e. cuando creas una nueva columna y debes actualizar todos los registros) o para ejecutar código SQL especial.