2010-12-28 5 views
12

私はgithubに私のレールアプリを持っていて、herokuにgithubレポを配備していると言います。herokuでシンプルなファイルを実行する方法

私は単語の集まり(私のgithubのレポにある)と簡単なテキストファイルを持っている状況があります。私はこれらの単語を(単純なルビプログラムを使って)データベースに挿入したい。 tapコマンドを使うのではなく、ヒロクで簡単なRubyプログラムを実行して単語をデータベースに挿入することができますか?それとも端末に表示するだけでしょうか?

多分混乱しますが、基本的に私はherokuコマンドラインから単純なルビスクリプトを実行する方法を知りたいのですか?

答えて

6

は、binディレクトリにあなたのRubyスクリプトを入れて、gitのはHerokuのにそれを押してください。これで、herokuコンソールでシェルコマンドを実行できます。あなたのRubyスクリプトは、ビン/ foo.rbある場合たとえば、あなたはHerokuのコンソールで次のコマンドを実行することができます

`ruby bin/foo.rb` 

注バッククォートを使用します。

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

シンプルなSinatraアプリケーションを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 

お使いのブラウザでhttp://example.com/import/a-long-unguessable-url-fdsjklgfuiwfnjfkdsklfdsが表示されます。外部のcronタスクに便利です。

はまた、レポでconfig.ruファイルが必要になります。

require 'importer' 
run Sinatra::Application 
+0

コマンドheroku consoleが削除されました。 – Stanislasdrg

1

あなたはHerokuの上で任意のローカルのRubyファイルを実行したい場合は、

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

でブログ記事をチェックアウトするために注意すべきいくつかのもの(長い実行時間は、など、)がありますが、それは可能性がありますHerokuのインスタンスでテストまたは実行したいファイルをチェックインしていない場合に役立ちます。杉で

+0

リンクが無効です。関連する部品を引用してください。 – schmijos

+0

固定リンク、ありがとう! –

14

、あなたはbashの実行することができます:あなたはHerokuの上のRailsアプリの話をしているので、どのようにrails runnerの使用について、

heroku run bash 
関連する問題