簡體   English   中英

如何在Heroku中運行Rails控制台? Rails 5.1和Postgresql

[英]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: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/ 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:in start' 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:in tap' 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:387 dispatch' 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM