Есть ли проблема с рейком, которая показывает ожидающие миграции в приложении rails?Показывать ожидающие миграции в рельсах
ответ
Существует 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.
Try грабли -h (помощь) и посмотрим на грабли -n (= грабли --пробный прогон). Так что, вероятно, что-то вроде rake -n db: migrate должно получить то, что вы хотите.
Это не сработает. Он просто печатает: ** Invoke db: migrate (first_time) ** Вызывать среду (first_time) ** Среда выполнения (сухой запуск) ** Выполнение (сухой пробег) db: migrate – jrdioko
rake db:migrate:status
выполнит это в Rails 3. См. the commit.
Я получаю 'Do not знать, как построить задачу 'db: migrate: status'' on rails 3.2.8 –
@PeterEhrlich: Не отображается ли она в 'rake -T', а другие? – jrdioko
Правильно, ничего о статусе в 'rake -T' –
rake db:version
выполнит это на Rails 2.
Также действителен в рельсах 3.2.18 –
Эта команда выведет список всех миграций с их статусом (UP
или DOWN
)
Rails 3 и 4
rake db:migrate:status
Rails 5
rake db:migrate:status
# Or
rails db:migrate:status
После команды для проверки состояния миграции:
rake db:migrate:status
ИЛИ
при запуске сервера, он будет отображать сообщение для запуска в ожидании миграции первым.
Я люблю добавлять это для сопоставления зависимостей между контейнерами рельсов –
Все еще там в Rails 4.1.16 – Magne
Работает в рельсах 5.1.3, а также –