Ruby on Rails: Comment puis-je choisir le coureur de l'environnement de script
Je suis aide d'un script shell pour exécuter certains coureur de scripts dans mon Ruby on Rails app. J'ai besoin de l'exécuter sur la base de données de production, mais les suivantes:
#!/bin/bash
/usr/bin/ruby RAILS_ENV=production ../script/runner ../lib/tasks.rb
donne une erreur:
/usr/bin/ruby: No such file or directory -- RAILS_ENV=production (LoadError)
J'ai essayé de le forcer dans config/environment.rb
ENV['RAILS_ENV'] ||= 'production'
ou même
ENV['RAILS_ENV'] = 'production'
mais même avec ce qu'il s'exécute toujours dans l'environnement de développement.
Mise à jour: je peux forcer les scripts pour vous connecter à la base de données en éditant le fichier config/database.fichier yml, mais je me demande quelle est la bonne manière de le faire.
Avez-vous lu ma réponse? Il permettra de choisir votre environnement correctement si vous passez vos paramètres différemment.
Il sera exécuté, mais il ne sera pas mis le environnement correctement.
Puis quelque chose est incorrect avec votre script, pas la commande.
Il sera exécuté, mais il ne sera pas mis le environnement correctement.
Puis quelque chose est incorrect avec votre script, pas la commande.
OriginalL'auteur Goro | 2009-04-17
Vous devez vous connecter pour publier un commentaire.
L'aide sur la ligne de commande pour le script/runner vous donne votre réponse.
Ne pas avoir un script/runner, mais le script/rails de runner -e Modèle de production.la méthode fonctionne pour moi.
ni
script/runner -e production Model.method
niscript/rails runner -e production Model.method
a fonctionné pour moi... la suite a fait un travail si:RAILS_ENV=production rails runner -e production Model.method
OriginalL'auteur nitecoder
Si c'est votre commande, la commande de vos arguments est votre plus gros problème.
Est différent.
Le deuxième exemple est à la recherche pour le fichier, le premier paramètre est une variable d'exécution tandis que ruby en l'interprétant comme le fichier que vous souhaitez exécuter.
OriginalL'auteur Garrett
Si vous refaites votre script comme ceci:
...qui permettra de faire de bâton pour la durée de vie du script. Pour faire coller pour la durée de vie de la coque de la session, le modifier à
OriginalL'auteur Avery Payne
Vous pouvez définir la variable d'environnement comme ceci :
OriginalL'auteur shodanex
il a travaillé pour moi
OriginalL'auteur gaspar