Има ли променлива на средата, която мога да използвам в моите rails инициализатори, за да определя дали се изпълнява рейк задача? Харесвам -- rake db:migrate db:seed
Имам куп инициализатори, които могат да бъдат пропуснати за повечето рейк задачи:
- Не зареждайте spring (това е проект на jruby)
- Не зареждайте наблюдателя за проверка, който нарушава миграцията
Актуализация:
Вероятно ще съжалявам за това по-късно - но следното изглежда работи -
В моя application.rb -- добавих следното:
config.is_rake = (File.basename($0) == 'rake')
След това проверявам стойността по-късно
config.active_record.observers = :audit_observer unless config.is_rake
На друго място в моя пролетен инициализатор
SPRING_CONTEXT = org.springframework.context.support.FileSystemXmlApplicationContext.new(SPRING_XML_CONFIG_FILES) unless Rails.application.config.is_rake
Въз основа на отговор намерен тук