gpt4 book ai didi

ruby-on-rails - 有没有一种方法可以使用Capistrano(或类似工具)与Rails控制台进行远程交互

转载 作者:行者123 更新时间:2023-12-03 21:13:58 24 4
gpt4 key购买 nike

我很喜欢capistrano如何简化我的部署工作流程,但是通常情况下,插入更改会遇到一些问题,这些问题我需要通过控制台登录服务器进行故障排除。

有没有一种方法可以使用capistrano或其他远程管理工具从本地终端与服务器上的Rails控制台进行交互?

**更新:

cap shell看起来很有前途,但是当您尝试启动控制台时,它会挂起:

cap> cd /path/to/application/current
cap> pwd
** [out :: application.com] /path/to/application/current
cap> rails c production
** [out :: application.com] Loading production environment (Rails 3.0.0)
** [out :: application.com] Switch to inspect mode.

如果您知道解决方法,那就太好了

最佳答案

我发现了基于https://github.com/codesnik/rails-recipes/blob/master/lib/rails-recipes/console.rb的不错的解决方案

desc "Remote console" 
task :console, :roles => :app do
env = stage || "production"
server = find_servers(:roles => [:app]).first
run_with_tty server, %W( ./script/rails console #{env} )
end

desc "Remote dbconsole"
task :dbconsole, :roles => :app do
env = stage || "production"
server = find_servers(:roles => [:app]).first
run_with_tty server, %W( ./script/rails dbconsole #{env} )
end

def run_with_tty(server, cmd)
# looks like total pizdets
command = []
command += %W( ssh -t #{gateway} -l #{self[:gateway_user] || self[:user]} ) if self[:gateway]
command += %W( ssh -t )
command += %W( -p #{server.port}) if server.port
command += %W( -l #{user} #{server.host} )
command += %W( cd #{current_path} )
# have to escape this once if running via double ssh
command += [self[:gateway] ? '\&\&' : '&&']
command += Array(cmd)
system *command
end

关于ruby-on-rails - 有没有一种方法可以使用Capistrano(或类似工具)与Rails控制台进行远程交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4347811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com