Чи є завдання граблі, яке показує очікувані міграції в додатку рейки?
Чи є завдання граблі, яке показує очікувані міграції в додатку рейки?
Відповіді:
rake db:migrate:status
(Рейки 3 - 5) або rails db:migrate:status
(Рейки 5) це досягнуть. Дивіться цю прихильність .
up
означає, що міграція виконана. down
означає, що міграція не виконується.
rake -T
інших, але інших?
up
означає, що міграція виконана. down
означає, що міграція не виконується.
Є rake db:abort_if_pending_migrations
(принаймні, в Rails 2.3.3, не впевнений, коли він був введений). В описі написано: "Піднімає помилку, якщо є міграції, що очікують". Це, здається, використовується більше як необхідна умова для інших завдань, але я здогадуюсь, що ви могли б використовувати його у своїх цілях.
EDIT: Ось приклад результату після того, як тільки що генерували та не виконували "тестову" міграцію
rails_project theIV$ rake db:abort_if_pending_migrations
(in /Users/theIV/Sites/rails_project/)
You have 1 pending migrations:
20090828200602 Test
Run "rake db:migrate" to update your database then try again.
Ця команда буде перераховувати всі міграції зі своїм статусом ( UP
або DOWN
)
Рейки 3 і 4
rake db:migrate:status
Рейки 5
rake db:migrate:status
# Or
rails db:migrate:status
Спробуйте граблі -h (допомога) і подивіться на рейку -n (= рейка - пробіг). Тому, ймовірно, щось на кшталт rake -n db: migrate має отримати вам те, що ви хочете.
Можливо, це не те, про що вимагає ОП, але якщо вам просто потрібно швидко перевірити, чи є якась міграція, яка використовується для виконання граблі, не вдаючись до
rake db: migrate: статус | 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 db:migrate:status
Більше за посиланням: Міграція з реєстру активної рейки
Якщо вам потрібен одношаровий баш, щоб визначити, чи потрібно запускати міграцію чи ні (наприклад, мігрувати лише в команді фази звільнення Heroku, коли є міграція, що очікує на розгляд), це працює:
(rails db:migrate:status | grep "^\s*down") && rails db:migrate || echo "No pending migrations found."
Don't know how to build task 'db:migrate:status'
на рейки 3.2.8