Подтвердить что ты не робот

Как запустить простой файл на героку

Скажем, у меня есть приложение rails на github, и я развертываю репозиторий github на heroku.

У меня есть ситуация, когда у меня есть простой текстовый файл с кучей слов (он находится в моем реестре github). Я хочу вставить эти слова (используя простую рубиновую программу) в базу данных. Вместо использования команды tap, можно ли в heroku просто запустить мою простую рубиновую программу и вставить слова в базу данных... или просто показать их на терминале?

может быть запутанным, но в основном я хочу знать, как запустить простой ruby ​​ script из командной строки героя?

4b9b3361

Ответ 1

Поместите ruby ​​ script в каталог bin и git нажмите на Heroku. Теперь вы можете выполнить команду оболочки в консоли heroku.

Например, если ваш Ruby script является bin/foo.rb, вы можете запустить следующую команду в консоли Heroku:

`ruby bin/foo.rb`

Обратите внимание на использование обратных ссылок.

Ответ 2

С кедром вы можете запустить bash:

heroku run bash

Ответ 3

Поскольку вы говорите о приложении Rails на Heroku, как насчет использования rails runner:

heroku run bundle exec rails runner ./path/to/script.rb -a <your-app>

Для более подробной информации смотрите RailsGuides для rails runner.


В качестве альтернативы превратите это script в рейк-задачу, если бегун не ваша чашка чая (например, для

Ответ 4

Если вы хотите запустить произвольные локальные файлы Ruby на Heroku, просмотрите сообщение в блоге

http://www.22ideastreet.com/debug/run-local-scripts-on-heroku

Есть несколько вещей, на которые нужно обратить внимание (длительное время работы и т.д.), но может быть полезно, если у вас есть файл, который вы не проверяли, чтобы проверить или запустить экземпляр Heroku.

Ответ 5

cd /path/to/my/local/repository
heroku console
require 'my_word_importing_script'

В противном случае попробуйте простое приложение Sinatra в качестве импортера .rb?

require 'sinatra'
require 'sequel'

configure do
  // connect to the database with sequel
end

get '/import/a-long-unguessable-url-fdsjklgfuiwfnjfkdsklfds' do
  words = YAML.load(File.join(File.dirname(__FILE__), "my_list_of_words.yaml"))
  words.each do |word|
    // Your logic for inserting into the database with sequel
  end
end

Нажатие http://example.com/import/a-long-unguessable-url-fdsjklgfuiwfnjfkdsklfds в вашем браузере начнет импорт. Удобен для внешней задачи cron.

Вам также понадобится файл config.ru в репо:

require 'importer'
run Sinatra::Application