Я работаю над обновлением приложения rails с 2.3.11 до 3.0 (затем со временем 3.1) и изменяю свой камень delayed_job с 2.0.4 до 2.1.4.
Там уже есть таблица delayed_jobsв моей базе данных postgres, но она отличается от базы данных по умолчанию для моего приложения rails.Например, в режиме разработки я использую базу данных 'development', но некоторые из моих отношений, в том числе delayed_jobs, находятся на базе данных 'development_stats'.Другие модели, которые используют эту базу данных, могут получить к ней доступ нормально.
В моем config/initializers/delayed_job.rb
для delayed_job 2.0.4:
Delayed::Worker.backend = :active_record
Delayed::Worker.destroy_failed_jobs = false
class Delayed::Job
establish_connection Rails.configuration.database_configuration["#{Rails.env}_stats"]
end
Теперь я получаю эти ошибки, когда пытаюсьиспользуйте delayed_job:
ActiveRecord::StatementInvalid: PGError: ERROR: relation "delayed_jobs" does not exist
LINE 1: DELETE FROM "delayed_jobs"
или
NoMethodError: undefined method `name' for nil:NilClass
~/.rvm/gems/ruby-1.9.2-p290/gems/arel-2.0.10/lib/arel/visitors/to_sql.rb:56:in `block in visit_Arel_Nodes_InsertStatement'
Из других вещей, которые я читал, кажется, что модель Delayed :: Job загружается сейчас, когда загружается гем, поэтомуслишком поздно, чтобы изменить БД в инициализаторе.Кто-нибудь еще сталкивался с этой проблемой и был в состоянии найти способ сказать delayed_job использовать другую базу данных?
Заранее спасибо за любую помощь, которую вы можете мне дать ...