Tak satu pun dari jawaban ini sesuai dengan masalah yang saya alami karena migrasi yang ingin saya hapus tidak ada: Saya telah membuat dan menjalankan migrasi di beberapa cabang lain, yang kemudian dibuang. Masalahnya adalah saat migrasi dijalankan, rails menambahkan versi ke dalam schema_migrations
tabel di database. Jadi meskipun tidak terdaftar dalam struktur atau skema db Anda, rel akan mencarinya. Anda dapat mengungkapkan migrasi yatim piatu ini dengan menjalankan:
rails db:migrate:status
Perhatikan versi migrasi yang hilang dan masuk ke konsol db:
rails dbconsole
Sekarang hapus versi dari tabel migrasi secara manual:
delete from schema_migrations where version='<version>';
Anda sekarang harus menjadi baik.