Ninguna de estas respuestas se ajusta al problema que tenía, ya que faltaba la migración que quería eliminar: había creado y ejecutado una migración en alguna otra rama, que luego se descartó. El problema es que cuando se ejecuta una migración, rails agrega la versión a una schema_migrations
tabla en la base de datos. Entonces, incluso si no aparece en la estructura o esquema de su base de datos, rails lo busca. Puede revelar estas migraciones huérfanas ejecutando:
rails db:migrate:status
Tenga en cuenta las versiones de las migraciones que faltan y diríjase a la consola de db:
rails dbconsole
Ahora elimine las versiones de la tabla de migración manualmente:
delete from schema_migrations where version='<version>';
Ahora deberías estar bien.
self.down
método definido en su migración para "degradar" su base de datos.rake db:migrate:status
le mostrarán el ID del archivo que falta, que puede usar para recrearlo. Una vez que regrese, puede seguir los consejos de esta respuesta para la victoria.db:migrate:status
es un salvavidas!