2010-12-28 4 views
12

dis que j'ai mon application rails sur github et que je suis en train de déployer le repo github sur heroku.comment exécuter un simple fichier sur heroku

J'ai une situation où j'ai un simple fichier texte avec des tas de mots (c'est dans mon repo github). Je veux insérer ces mots (en utilisant un simple programme ruby) dans une base de données. Au lieu d'utiliser la commande tap, est-il possible en heroku d'exécuter mon simple programme ruby ​​et d'insérer les mots dans la base de données ... ou peut-être de les afficher sur le terminal?

peut-être déroutant mais fondamentalement je veux savoir comment exécuter le script ruby ​​simple de la ligne de commande heroku?

Répondre

6

Mettez votre script Ruby dans un répertoire bin et git le pousser à Heroku. Vous pouvez maintenant exécuter une commande shell dans la console heroku.

Par exemple, si votre script Ruby est bin/foo.rb, vous pouvez exécuter la commande suivante dans la console Heroku:

`ruby bin/foo.rb` 

Notez l'utilisation de guillemets obliques.

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

A défaut, essayez une application Sinatra simple en tant qu'importateur.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 

Frapper http://example.com/import/a-long-unguessable-url-fdsjklgfuiwfnjfkdsklfds dans votre navigateur serait coup d'envoi à l'importation. Pratique pour une tâche cron externe.

Vous aurez également besoin d'un fichier config.ru dans le repo:

require 'importer' 
run Sinatra::Application 
+0

La console de commande heroku a maintenant été supprimée. – Stanislasdrg

1

Si vous voulez exécuter des fichiers Ruby locaux arbitraires sur Heroku, consultez le blog à

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

Il y a des choses à surveiller (temps d'exécution à long, etc.), mais il pourrait être utile si vous avez un fichier que vous n'avez pas vérifié que vous voulez tester ou exécuter sur une instance Heroku.

+0

Le lien est mort. S'il vous plaît citer les parties pertinentes. – schmijos

+0

Lien fixe, merci! –

14

Avec cèdre, vous pouvez exécuter bash:

heroku run bash 
Questions connexes