2010-12-28 17 views
12

mówią, że mam moją aplikację szyny na github i wdrażam repozytorium github na heroku.jak uruchomić prosty plik na heroku

Mam sytuację, w której mam prosty plik tekstowy z kilkoma słowami (jest w moim repozytorium github). Chcę wstawić te słowa (przy użyciu prostego programu ruby) do bazy danych. Zamiast używać polecenia "dotknij", czy w Heroku można po prostu uruchomić mój prosty program ruby ​​i wstawić słowa do bazy danych ... a może po prostu pokazać je na terminalu?

może być mylące, ale w zasadzie chcę wiedzieć, jak uruchomić prosty skrypt ruby ​​z linii poleceń heroku?

Odpowiedz

6

Połóż skrypt ruby ​​w katalogu bin i git pchania go do Heroku. Teraz możesz wykonać polecenie powłoki w konsoli Heroku.

Na przykład, jeśli skrypt Ruby jest bin/foo.rb można uruchomić następującą komendę w konsoli Heroku:

`ruby bin/foo.rb` 

Zauważ użycie backticks.

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

W przypadku niepowodzenia wypróbuj prostą aplikację Sinatra jako importer.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 

Uderzenie http://example.com/import/a-long-unguessable-url-fdsjklgfuiwfnjfkdsklfds w przeglądarce spowoduje rozpoczęcie importu. Poręczny dla zewnętrznego zadania cron.

będzie też potrzebny plik config.ru w repo:

require 'importer' 
run Sinatra::Application 
+0

Polecenie Heroku Console zostało usunięte. – Stanislasdrg

1

Jeśli chcesz uruchamiać dowolne pliki lokalne Ruby on Heroku, sprawdź blogu w

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

Jest kilka rzeczy, na które trzeba uważać (czasami dłuższej perspektywie, itp), ale może przydać się, jeśli masz plik, którego nie zaznaczyłeś, który chcesz przetestować lub uruchomić na instancji Heroku.

+0

Link nie działa. Proszę podać odpowiednie części. – schmijos

+0

Naprawiono link, dzięki! –

14

cedr, można uruchomić bash:

heroku run bash