Aquí os dejo este chuletario con los comandos más recurrentes en relación con las migraciones. Si no estás familiarizado con la expresión "bundle exec" que antepongo a los comandos, te recomiendo que revisites este post.
Primero, un par de ejemplos de migración. Primero Añadimos la tabla "nuevatabla". A continuación añadimos el campo "column" a la tabla Table. Esto que tenemos aquí son 2 MIGRACIONES, porque hemos modificado 2 veces sucesivas el esquema de base de datos.
bundle exec rails generate model nuevatabla campo1:string campo2:string bundle exec rails generate migration AddColumnToTable column:tipoEjecuta la migración del entorno indicado en RAILS_ENV. Por defecto será en development.
bundle exec rake db:migrate
Ejecuta la migración del entorno indicado en RAILS_ENV. Como se observa es en production. Todos los comandos siguientes pueden incorporar también la variable RAILS_ENV aunque no lo indiquemos.
bundle exec rake db:migrate RAILS_ENV=production
Para deshacer la última migración empleamos la fórmula siguiente:
bundle exec rake db:rollbackSi quereoms deshacer una cantidad de migraciones que conocemos perfectamente podemos usar STEP. En el ejemplo desharíamos 2 migraciones.
bundle exec rake db:rollback STEP=2Si por el contrario queremos ir a una versión concreta del esquema de base de datos, sea la cantidad de pasos hacia adelante o hacia atrás que sean, indicamos la versión con la variable VERSION.
bundle exec rake db:migrate:down VERSION=20160506210540El numerito de la versión es una marca de tiempo con la que se etiqueta la migración. También es el nombre del fichero donde se guarda. Los tenemos todos en "db/migrate" de tu directorio de proyecto rails. Si ordenas por fecha dejando abajo los más recientes puedes hacerte una idea de qué deshacer con rollback.