我想通过capistrano从本地机器进入生产服务器上的rails控制台。我找到了一些建议,例如。https://gist.github.com/813291和当我通过
cap production console
字符串
我得到以下结果
192-168-0-100:foldername username $ cap console RAILS_ENV=production
* executing `console'
* executing "cd /var/www/myapp/current && rails console production"
servers: ["www.example.de"]
[www.example.de] executing command
[www.example.de] rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell '1.9.3' -c 'cd /var/www/myapp/current && rails console production'
/var/www/myapp/releases/20120305102218/app/controllers/users_controller.rb:3: warning: already initialized constant VERIFY_PEER
Loading production environment (Rails 3.2.1)
Switch to inspect mode.
型
就是这样...现在我可以输入一些文本,但什么也没有发生...
有谁知道如何得到那份工作或其他解决我的问题的办法吗?
9条答案
按热度按时间x3naxklr1#
我为这类事情添加了自己的任务:
字符串
我现在说
cap rails:console
并得到一个控制台。nzkunb0c2#
对于Capistrano 3,您可以在
config/deploy
中添加以下行:字符串
要打开服务器列表中的第一台服务器,请执行以下操作:
型
要打开服务器列表中的第二个服务器,请执行以下操作:
型
参考:Opening a Rails console with Capistrano 3
需要exec来替换当前进程,否则您将无法与rails控制台交互。
oaxa6hgo3#
一个简单的Capistrano 3解决方案可以是:
字符串
然后你可以称之为,在舞台上,用:
cap staging rails:console
玩得开心!cmssoen24#
对于Capistrano > 3.5和rbenv. 2021年工作
字符串
wko9yo5t5#
我也曾尝试过这种方法,但后来我避免构建自己的交互式SSH shell客户端,而是选择了this snippet,我发现它只是简单地使用了很好的SSH。如果你有一些奇怪的SSH网关代理,这可能不适合,但对于登录到一个盒子并执行一些操作,它就像一个魅力。
xe55xuns6#
根据我的经验,capistrano并不适合与交互式终端一起工作。
如果你必须在多个终端中执行任务,我建议使用iterm,它有一个“发送到所有窗口”的功能,对我来说效果很好:
http://www.iterm2.com/#/section/home
34gzjxbg7#
我有一个有点困难的环境,这是涌入…所以
bash -lc
现在还不是一个选择。我的解决方案类似于@Rocco,但它更精致。字符串
zed5wv108#
对于Capistrano 3中的Rails控制台,请参阅以下要点:https://gist.github.com/joost/9343156
jhkqcmku9#
我刚刚使用capistrano-rails-console gem打开rails控制台,它工作得很好。