Задача Rake для заполнения базы данных в Heroku

#ruby-on-rails #heroku #sidekiq #rake-task

#ruby-on-rails #heroku #sidekiq #задача рейка

Вопрос:

Мне нужно один раз заполнить Heroku базу данных исходными данными, полученными с внешнего веб-сайта Nokogiri . После начальной задачи заполнения база данных будет обновляться периодическими заданиями с sidekiq sidekiq-cron .

Можно ли использовать задачу rake в среде удаленного приложения для загрузки базы данных?
Моя задача rake будет извлекать имена и другие атрибуты с внешнего веб-сайта и записывать их в базу данных, как в примере ниже:

 lib/tasks/feed.rake

desc "Fetch data and feed the database"
task :feed_database => :environment do
  require 'nokogiri'
  require 'open-uri'

  range = (1..100)
  url  = "http://www.example.com"
  doc  = Nokogiri::HTML(open(url))

  range.each do |num|
    name   = doc.at_css("tr:nth-child(#{num})).text
    Model.create(name: name)
  end
end
  

С моей удаленной консоли я бы использовал следующую команду:

 $ heroku run rake feed_database
  

или следующие команды:

 $ heroku run console
$ rake feed_database
  

Однако существует мало документации Heroku о задачах rake, и кажется, что нет хорошо объясненных ограничений на использование команд rake.

Комментарии:

1. Вы можете это сделать. У вас возникли какие-либо конкретные проблемы?

2. Я все еще разрабатываю свое приложение, мне нужно время перед развертыванием. Я хотел быть уверен, когда придет время, что я не делаю неправильно.