2017-09-24 3 views
0

J'ai suivi avec un tutoriel pour une application Rails. Le tutoriel est basé sur Rails 5 et j'utilise Rails 5.1.2. Tout fonctionne très bien localement et poussé à heroku sans problèmes. Cependant, quand je suis allé à créer un utilisateur d'administration sur la base de données de production en cours d'exécution:Comment puis-je exécuter la console rails dans Heroku? Rails 5.1 et postgresql

$ heroku run rails c 

il renvoie l'erreur suivante:

/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in require': cannot load such file -- rack/handler/c (LoadError) from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in block in require' from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:258:in load_dependency' from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in require' from /app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/handler.rb:74:in try_require' from /app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/handler.rb:16:in get' from /app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/server.rb:301:in server' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:68:in print_boot_information' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:38:in start' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:131:in block in perform' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:126:in tap' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:126:in perform' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb:27:in run' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in invoke_command' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor.rb:387:in dispatch' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/command/base.rb:63:in perform' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/command.rb:44:in invoke' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands.rb:16:in ' from bin/rails:9:in require' from bin/rails:9:in '`

Pour contourner ce que je peux courir:

$ heroku run bash 
$ rails c 

et cela me permet de mettre à jour la base de données de production. Alors que cela fonctionne et me procure ce dont j'ai besoin. Je veux savoir pourquoi la commande d'origine ne fonctionne pas. J'ai cherché partout une réponse et ne peux pas trouver quelque chose qui s'applique à moi. J'essaie d'améliorer mes compétences en développement et je voudrais comprendre pourquoi le problème original ne fonctionnera pas.

Je peux ajouter tous les fichiers que tout le monde a besoin de voir, mais je ne sais même pas lesquels seraient pertinents à ce problème.

+0

Est-ce que vous publiez l'ensemble du message d'erreur? –

+0

https://devcenter.heroku.com/articles/getting-started-with-rails5#rails-console indique que 'heroku run rails console' est la bonne commande pour accéder à votre console rails sur heroku. Basé sur d'autres articles de stackoverflow ceci peut être un gem manquant ou un paramètre d'environnement qui n'est pas trouvé. –

Répondre

0

Ma compréhension est que la commande heroku run est fournie par l'interface de ligne de commande Heroku (CLI). La CLI ne sait pas comment gérer la commande rails c. Cependant, exécuter heroku run bash lancera un nouveau dyno et donnera accès à un shell Unix, où vous pouvez exécuter des commandes (c'est-à-dire des rails c) un peu comme si vous étiez un terminal local. Pour plus d'informations, voir: https://devcenter.heroku.com/articles/how-heroku-works.

modifié pour corriger erreur: la CLI ne sait comment gérer la commande rails c

+0

est-ce une nouvelle chose? Je le regarde littéralement exécuter la commande 'heroku run rails c' en ce moment même. Je sais qu'il y a eu de gros changements entre les rails 5 et 5.1 et heroku lui-même a été mis à jour. Je lirai votre lien et le marquerai comme si cela en parlait cependant. merci –

+0

J'ai passé en revue les documents Heroku spécifiques à Rails et il semble que la commande est supportée. Peut-être essayer de poster un lien vers le référentiel? – lgants