2016-09-28 1 views
1

J'ai des problèmes pour accéder à la console rails en production.accéder à Rails Console après le déploiement sur le serveur

J'utilisé Capistrano pour déployer l'application à un VPS

Si je cd à [email protected]:~/myapp/current$ et courir bundle exec rails c là, je reçois toujours la liste des options pour la création de nouveaux rails projet, comme rails new

J'ai aussi essayé bundle exec rails console --production et rails console etc tous avec le même résultat.

la chose est que je dois être en mesure d'accéder à la console parce que je dois créer un administrateur pour active admin

pourrait être intéressant d'ajouter que j'utilise passager/Capistrano et Nginx sur Ubuntu 16

Est-ce que quelqu'un sait ce qui se passe ici? Est-ce que je fais quelque chose de mal?

* EDIT

Après l'exécution RAILS_ENV=production bundle exec rails c je reçois ce message

Looks like your app's ./bin/rails is a stub that was generated by Bundler. 

In Rails 4, your app's bin/ directory contains executables that are versioned 
like any other source code, rather than stubs that are generated on demand. 

    Here's how to upgrade: 

    bundle config --delete bin # Turn off Bundler's stub generator 
    rake rails:update:bin   # Use the new Rails 4 executables 
    git add bin     # Add bin/ to source control 

    You may need to remove bin/ from your .gitignore as well. 

    When you install a gem whose executable you want to use in your app, 
    generate it and add it to source control: 

    bundle binstubs some-gem-name 
    git add bin/new-executable 

    Loading production environment (Rails 4.2.5) 
    irb(main):001:0> 
+0

avez-vous la '~/myapp/dossier/bin' et est-ce contiens' rails'? – dp7

+0

Oui, il est là, il semble être vide cependant .... au moins si je suis à l'intérieur – DaudiHell

+0

oui, il devrait avoir les fichiers exécutables. Vérifiez votre repo Github, s'il a tous les fichiers exécutables avec 'bin' ou non. – dp7

Répondre

3

Il vous manque des fichiers exécutables du dossier dans binproduction après le déploiement Capistrano.

Vous devez supprimer bin de set :linked_dirs de votre Capistrano deploy.rb afin d'éviter de le symplier.

Vous pouvez encore essayer cap production deploy, il prendrait tous les fichiers exécutables de bin à la production.

Maintenant, vous pouvez accéder à la console de rails à l'aide:

RAILS_ENV bundle exec rails c 
+0

Merci beaucoup, cela m'aide beaucoup – DaudiHell

1

Si vous utilisez Capistrano 3, vous pouvez inclure les rails: l'option de la console qui vous permettra de le faire à partir de votre machine locale pour accéder à la console sur l'hôte distant:

bundle exec cap production rails:console

https://rubygems.org/gems/capistrano-rails-console

+0

Si j'utilise la gemme 'capistrano-rails-console 'et' cd' dans 'deploy @ myapp: ~/myapp/current $' j'ai cette erreur '(Backtrace restreint à tâches importées) bouchon abandonné! LoadError: impossible de charger un tel fichier - capistrano/rbenv /home/deploy/hlinreykdal/releases/20160929002954/Capfile: 25: dans 'require' /home/deploy/hlinreykdal/releases/20160929002954/Capfile: 'dans' ' (Voir la trace complète en exécutant la tâche avec --trace) ' – DaudiHell

+0

Vous avez des dépendances pour cela? Utilisez-vous rbenv? Je devrais voir votre gemfile et capfile pour savoir ce que vous faites. –

0

vérifier si RVM et en ce qui concerne gemset est adapté pour l'application

rvm gemset list 
rvm list 

puis faire

bin/rails rails c -e production