답변:
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에는 언제 도입되었는지 확실하지 않습니다). 설명에 '대기중인 마이그레이션이있는 경우 오류가 발생합니다'라고 표시되어 있습니다. 이것은 다른 작업의 전제 조건으로 더 많이 사용되는 것으로 보이지만 귀하의 목적으로 사용할 수 있다고 생각합니다.
편집 : 다음은 '테스트'마이그레이션을 생성하고 실행하지 않은 후의 출력 예입니다.
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.
OP가 요구하는 것이 아닐 수도 있지만, 마이그레이션 작업에 의존하지 않고 마이그레이션 작업이 레이크 작업에 사용되도록 보류 중인지 신속하게 확인 해야하는 경우
rake db : migrate : status | 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?
in Rails 5.1
마이그레이션이 얼마나 진행 중이거나 보류 중인지 보려면 아래 명령을 사용하여 볼 수 있습니다.
rails db:migrate:status
이 링크에 대한 추가 정보 : Rails Active Record Migration
마이그레이션 실행 여부를 결정하기 위해 bash one-liner가 필요한 경우 (예 : 보류중인 마이그레이션이있을 때 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