Если вы используете Bundler , вам может потребоваться выполнить скрипт в контексте вашего пакета .Это даст вашему сценарию понимание соответствующих драгоценных камней.Кажется, что даже если ваш gem env
дает вам правильный путь к самоцвету, ваш скрипт может не выполняться с той же конфигурацией среды.
run "cd #{current_path}; RAILS_ENV=production bundle exec script/delayed_job restart"
Или, если вы не используете bundler, вы можете проверитьвывод gem env
из задачи, чтобы подтвердить, что скрипт использует или не использует правильную конфигурацию среды.Попробуйте проверить журналы для вывода этой команды.
run "cd #{current_path}; RAILS_ENV=production gem env"
Я подозреваю, что ваш вывод gem env
будет отличаться.Вы также можете попробовать перечислить гемы, доступные для задачи.
run "cd #{current_path}; RAILS_ENV=production gem list"
Наконец, вы можете проверить файл script/delayed_job
, чтобы увидеть, указывает ли он на другую версию конфигурации Ruby или Ruby on Rails.Сообщите нам, если эти строки существуют или выглядят иначе:
#!/usr/bin/env ruby
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
Дополнительные ссылки