2010-12-28 16 views
12

dire che ho la mia app per rails su github e sto distribuendo il repository github su heroku.come eseguire un semplice file su heroku

Ho una situazione in cui ho un semplice file di testo con un mucchio di parole (è nel mio repository Github). Voglio inserire queste parole (usando un semplice programma ruby) in un database. Invece di usare il comando tap, è possibile in heroku eseguire semplicemente il mio semplice programma ruby ​​e inserire le parole nel database ... o magari mostrarle sul terminale?

forse confondendo ma fondamentalmente voglio sapere come eseguire un semplice script ruby ​​dalla riga di comando heroku?

risposta

6

inserire lo script ruby ​​in una directory bin e git spingerlo a Heroku. Ora puoi eseguire un comando di shell nella console di heroku.

Ad esempio, se lo script Ruby è bin/foo.rb, è possibile eseguire il seguente comando nella console Heroku:

`ruby bin/foo.rb` 

Nota l'uso di apici inversi.

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

In caso contrario, provare un'applicazione Sinatra semplice come importatore.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 

Colpire http://example.com/import/a-long-unguessable-url-fdsjklgfuiwfnjfkdsklfds nel browser avvia l'importazione. Comodo per un'attività cron esterna.

Si sarebbe anche bisogno di un file config.ru nella repo:

require 'importer' 
run Sinatra::Application 
+0

La console di comando di heroku è stata rimossa. – Stanislasdrg

1

Se si desidera eseguire arbitrari file di Ruby locali su Heroku, controlla il post sul blog a

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

Ci sono alcune cose da guardare fuori per (lunghi tempi di esecuzione, ecc), ma potrebbe essere utile se si dispone di un file che non è stato archiviato e che si desidera testare o eseguire su un'istanza di Heroku.

+0

Il link è morto. Si prega di citare le parti pertinenti. – schmijos

+0

Collegamento fisso, grazie! –

14

di cedro, è possibile eseguire bash:

heroku run bash 
Problemi correlati