Я використовував схему Hibernate SchemaUpdate для виконання тієї ж функції, що і міграція. Насправді це простіше, ніж міграція, тому що кожного разу, коли ви запускаєте програму, вона перевіряє структуру бази даних та синхронізує її з вашими зіставленнями, тому немає додаткових граблів: db: крок міграції, і ваша програма ніколи не може бути не синхронізованою з базою даних, яку вона запускає проти. Файли зіставлення Hibernate не складніші, ніж міграції Rails, тому навіть якщо ви не використовували Hibernate у програмі, ви можете скористатися цим. Недоліком є те, що він не такий гнучкий, як відкат, міграція вниз, запуск операторів DML. Як зазначено в коментарях, він також не скидає таблиці та стовпці. Я запускаю окремий метод, щоб робити це вручну як частину процесу ініціалізації сплячого режиму.
Я не розумію, чому ви не могли використовувати міграції Rails - поки ви не проти встановити стек (Ruby, Rake, Rails), вам не доведеться торкатися вашого додатка.