2016-11-18 7 views
0

Я пытаюсь запустить команду rake db: migrate using sidekiq worker, но похоже, что это просто не сработает, и мне любопытно, есть ли способ сделать это или не. Я создаю леску с помощью sidekiq, но не может перенести его впоследствииКак запустить rake db: мигрировать с sidekiq

Это работает

class ScaffoldGeneratorWorker 
    include Sidekiq::Worker 

    def perform(id) 
     `rails g scaffold test_#{id} title:string body:text slug:string visible:boolean` 
    end 
end 

Но я не могу получить это запустить потом и работать

class DatabaseMigrationWorker 
    include Sidekiq::Worker 

    def perform 
    `rake db:migrate` 
    end 
end 

Возможно ли это, и если да , как я могу заставить его работать. Любая помощь приветствуется.

ответ

4

Сначала вы должны загрузить задачи рейк, а затем вызвать:

class DatabaseMigrationWorker 
    include Sidekiq::Worker 

    def perform 
    Name_Of_Your_App::Application.load_tasks 
    Rake::Task['db:migrate'].invoke 
    end 
end 
+0

в рабочем файле? –

+0

@ RockwellRice да, это должно быть у рабочего. –

Смежные вопросы