[英]How can I run rails console in Heroku? Rails 5.1 and postgresql
我一直在關注Rails應用程序的教程。 本教程基於Rails 5,我正在使用Rails 5.1.2。 一切都在本地運行良好,並毫無問題地推送至heroku。 但是,當我通過運行在生產數據庫上創建管理員用戶時:
$ heroku run rails c
它返回以下錯誤:
/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
在/app/vendor/bundle/ruby/2.4.0/來自/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb的gems / activesupport-5.1.3 / lib / active_support / dependencies.rb:258:在load_dependency' from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in
require'來自/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/handler.rb:74:intry_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/server' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:68:in
:在server' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:68:in
rack / server.rb:301:在server' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:68:in
從/app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:38:instart' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:131:in
在執行中從/ app / vendor / bundle中阻止/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:126:intap' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:126:in
從/app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb執行:27:在run' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in
invoke_command'來自/ app / vendor / bundle / ruby /2.4.0/gems/thor-0.20.0/lib/thor.rb:387dispatch' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/command/base.rb:63:in
執行中/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
'從倉/軌道:9:在require' from bin/rails:9:in
“`
為了解決這個問題,我可以運行:
$ heroku run bash
$ rails c
這使我可以更新生產數據庫。 雖然這可行,並且可以滿足我的需求。 我想知道為什么原始命令不起作用。 我到處都在尋找答案,無法找到適用於我的任何內容。 我正在嘗試提高自己的開發技能,並且想了解為什么原始問題無法解決。
我可以添加任何人需要查看的文件,但是我什至不知道哪個文件與該問題有關。
您可以指定應用名稱,以防萬一:
heroku run rails c -a APP_NAME
我的理解是heroku run
命令是由Heroku命令行界面(CLI)提供的。 CLI不知道如何處理 。 但是,運行rails c
命令heroku run bash
將啟動一個新的dyno,並提供對Unix shell的訪問,您可以在其中運行命令(即rails c),就像本地終端一樣。 有關更多信息,請參見: https : //devcenter.heroku.com/articles/how-heroku-works 。
編輯修復錯誤:CLI確實知道如何處理rails c
命令
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.