Существует ли задача rake, которая показывает отложенные миграции в приложении rails?
ruby-on-rails
rails-migrations
Readonly
источник
источник
Don't know how to build task 'db:migrate:status'
на рельсы 3.2.8rake -T
но другие появляются ?up
означает, что миграция была выполнена.down
означает, что миграция не была выполнена.Есть
rake db:abort_if_pending_migrations
(по крайней мере, в Rails 2.3.3, не уверен, когда он был представлен). В описании написано «Вызывает ошибку, если есть ожидающие миграции». Кажется, это больше используется в качестве предварительного условия для других задач, но я думаю, вы могли бы использовать его для своих целей.РЕДАКТИРОВАТЬ: Вот пример выходных данных после того, как только что сгенерировал и не запустил «тестовую» миграцию
источник
Эта команда выведет список всех миграций с их статусом (
UP
илиDOWN
)Рельсы 3 и 4
Рельсы 5
источник
rake db:version
выполнит это на Rails 2.источник
Это работает для рельсов 5.2
источник
Попробуйте rake -h (помощь) и посмотрите на rake -n (= rake --dry-run). Поэтому, вероятно, что-то вроде rake -n db: migrate должно дать вам то, что вы хотите.
источник
Возможно, это не совсем то, о чем просит OP, но если вам просто нужно быстро проверить, ожидают ли какие-либо миграции для использования в граблях, не прибегая к
грабли дБ: мигрировать: статус | grep down (может не работать, если вы работаете в Windows)
ActiveRecord :: Migration.check_pending! (поднимает ActiveRecord :: PendingMigrationError, которую нужно спасти)
вы можете использовать needs_migration? Метод: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class
источник
ActiveRecord::Migrator.needs_migration?
в Rails 5.1Следующая команда для проверки статуса миграции:
ИЛИ
Когда вы запустите свой сервер, он покажет сообщение, чтобы сначала запустить отложенную миграцию.
источник
Если вы хотите узнать, сколько выполнено или ожидает перенос, вы можете увидеть, используя команду ниже.
Подробнее по этой ссылке: Rails Active Record Migration
источник
Если вам нужна команда bash one-liner, чтобы определить, следует ли выполнять миграцию или нет (например, мигрировать только в команде фазы выпуска Heroku, когда есть ожидающая миграция), это работает:
источник