Tôi đã sử dụng SchemaUpdate của Hibernate để thực hiện chức năng tương tự như di chuyển. Nó thực sự dễ dàng hơn di chuyển vì mỗi khi bạn khởi động ứng dụng của mình, nó sẽ kiểm tra cấu trúc cơ sở dữ liệu và đồng bộ hóa nó với các ánh xạ của bạn, do đó không có thêm bất kỳ bước nào: db: migrate và ứng dụng của bạn không bao giờ có thể không đồng bộ với cơ sở dữ liệu mà nó đang chạy chống lại. Các tệp ánh xạ Hibernate không phức tạp hơn so với việc di chuyển Rails nên ngay cả khi bạn không sử dụng Hibernate trong ứng dụng, bạn vẫn có thể tận dụng nó. Nhược điểm là nó không linh hoạt như cuộn lùi, di chuyển xuống, chạy các câu lệnh DML. Như đã chỉ ra trong các nhận xét, nó cũng không làm rớt bảng hoặc cột. Tôi chạy một phương pháp riêng để thực hiện những điều đó theo cách thủ công như một phần của quá trình khởi tạo Hibernate.
Tuy nhiên, tôi không hiểu tại sao bạn không thể sử dụng di chuyển Rails - miễn là bạn không ngại cài đặt ngăn xếp (Ruby, Rake, Rails), bạn sẽ không phải động đến ứng dụng của mình.