Editar migration comprometida en Rails

En mi proyecto tengo migraciones como:

1. 20141122184434_add_column_a_to_b 2. 20141208235304_delete_data_from_b 3. 20141217011359_add_table 4. 20141218183503_remove_column_b_from_c 

Y ya están comprometidos para mi twig de desarrollo (pero no en master y producción). Después de algunas semanas (y de agregar más migration), se descubrió que la migration B contiene errores y elimina datos importantes, por lo que no podemos fusionarlos con el maestro.

¿Hay alguna forma clara de editar la migration 20141208235304_delete_data_from_b ? Sé que puedo volver a lanzar, editar y migrar nuevamente, pero ¿cómo funcionará para otros desarrolladores después de que haya confirmado mis cambios para desarrollar una sucursal?

Si la migration es recuperable (lo que significa que no destruirá datos importantes), simplemente puede agregar una nueva migration para solucionar el problema.

De lo contrario, si descubrió que una de las migraciones está causando algún problema, por lo tanto, la única solución posible es corregir la migration antes de que se aplique alguna vez en la producción. En ese caso, corrija la migration, pero luego quien aplique dicha migration localmente debe:

  1. vuelva a cargar el esquema por completo ( rake db:schema:load ) o
  2. revertir esa migration ( rake db:migrate:networkingo migrate rake db:migrate:networkingo VERSION = 20141208235304)

Un consejo más Una migration está diseñada para cambiar el esquema de la database, NO para eliminar / insert o manipular datos. Para tal, debe usar una tarea de rake.