¿Cómo puedo revertir una migración específica?
Tengo el archivo de migración db\migrate\20100905201547_create_blocks.rb
.
¿Cómo puedo revertir específicamente ese archivo de migración?
rake db:rollback STEP=1
Es una forma de hacer esto, si la migración que desea revertir es la última que se aplicó. Puedes sustituir 1 por cuantas migraciones quieras volver.
Por ejemplo:
rake db:rollback STEP=5
También revertirá toda la migración que ocurrió después (4, 3, 2 y también 1).
Para revertir todas las migraciones a (e incluir) una migración de destino, use: (Este comando corregido se agregó después de todos los comentarios que señalaban el error en la publicación original)
rake db:migrate VERSION=20100905201547
Para revertir solo una migración específica ( fuera de servicio ), utilice:
rake db:migrate:down VERSION=20100905201547
Tenga en cuenta que esto NO revertirá ninguna migración intermedia, solo la que figura en la lista. Si eso no es lo que pretendía, puede ejecutarlo de manera segura rake db:migrate
y solo volverá a ejecutar ese, omitiendo cualquier otro que no haya sido revertido previamente.
Y si alguna vez desea migrar una sola migración fuera de orden, también existe su inverso db:migrate:up
:
rake db:migrate:up VERSION=20100905201547
rake db:migrate:down VERSION=20100905201547
revertirá el archivo específico.
Para encontrar la versión de todas las migraciones, puede usar este comando:
rake db:migrate:status
O simplemente el prefijo del nombre del archivo de la migración es la versión que necesita revertir.
Consulte la entrada de la guía Ruby on Rails sobre migraciones.
Para revertir la última migración, puede hacer:
rake db:rollback
Si desea deshacer una migración específica con una versión, debe hacer:
rake db:migrate:down VERSION=YOUR_MIGRATION_VERSION
Por ejemplo, si la versión es 20141201122027, harás
rake db:migrate:down VERSION=20141201122027
para revertir esa migración específica.
Puede revertir su migración utilizando rake db:rollback
diferentes opciones. La sintaxis será diferente según sus requisitos.
Si desea revertir solo la última migración, puede usar cualquiera de las dos opciones
rake db:rollback
o
rake db:rollback STEP=1
Si desea revertir el número de migraciones a la vez, simplemente pase un argumento:
rake db:rollback STEP=n
donde n
es el número de migraciones a revertir, contando desde la última migración.
Si desea revertir a una migración específica, debe pasar la versión de la migración de la siguiente manera:
rake db:migrate:down VERSION=xxxxx
donde xxxxx es el número de versión de la migración.