web-dev-qa-db-fra.com

exécuter une tâche de râteau sur la «production» et spécifier l'environnement?

J'ai un hôte chez Linode et j'essaie d'exécuter une tâche Rake dessus, mais je reçois une erreur mySQL disant qu'il ne peut pas se connecter. On dirait qu'il pense que c'est en dev. J'ai fait une recherche sur Google et j'ai vu que je pouvais faire quelque chose comme ça:

bundle exec Rails c

Il charge l'environnement de développement et je ne peux pas exécuter User.all me donnant une erreur d'accès refusé.

Si je lance bundle exec Rails c Rails_ENV=production J'obtiens l'erreur:

Rails.env=production database is not configured (ActiveRecord::AdapterNotSpecified)

Cependant, si j'y accède via le Web, tout va bien. J'ai pu exécuter rake db:seed avant donc je sais qu'il y a un moyen de contourner ça.

L'accès à mySQL avec les informations d'identification de production fonctionne très bien.

Des idées?

24
timpone

Essaye ça:

Rails c production

ou, au début:

Rails_ENV=production Rails c

Il pense que vous passez Rails_ENV=production comme argument lorsque vous le mettez à la fin.

52
Nick Colgan

Si vous souhaitez exécuter votre console dans le contexte du bundle actuel dans votre Gemfile et vous assurer que vous utilisez votre utilisation de Gemset:

bundle exec Rails c production 
2
Hunter

Cela fonctionne pour moi. Cela dépend de la configuration de votre serveur et de toutes ses dépendances:

Rails_ENV=production bundle exec Rails console

0
Mark Locklear