Không có câu trả lời nào trong số này hoàn toàn phù hợp với vấn đề tôi gặp phải vì quá trình di chuyển mà tôi muốn xóa bị thiếu: Tôi đã tạo và chạy một quá trình di chuyển trong một số nhánh khác, sau đó đã bị loại bỏ. Vấn đề là khi quá trình di chuyển được chạy, rails sẽ thêm phiên bản vào một schema_migrations
bảng trong cơ sở dữ liệu. Vì vậy, ngay cả khi nó không được liệt kê trong cấu trúc hoặc giản đồ db của bạn, rails vẫn tìm kiếm nó. Bạn có thể tiết lộ những cuộc di cư mồ côi này bằng cách chạy:
rails db:migrate:status
Lưu ý các phiên bản di chuyển bị thiếu và truy cập vào bảng điều khiển db:
rails dbconsole
Bây giờ, hãy xóa các phiên bản khỏi bảng di chuyển theo cách thủ công:
delete from schema_migrations where version='<version>';
Bây giờ bạn nên tốt.