master
 1namespace :rails do
 2  desc "Remote console"
 3  task :console do
 4    on roles(:app) do
 5      run_interactively "bundle exec rails console #{fetch(:rails_env)}"
 6    end
 7  end
 8
 9  desc "Remote dbconsole"
10  task :dbconsole do
11    on roles(:app) do
12      run_interactively "bundle exec rails dbconsole #{fetch(:rails_env)}"
13    end
14  end
15
16  def run_interactively(command, server=nil)
17    server ||= find_servers_for_task(current_task).first
18    exec %Q(ssh #{user}@#{server.host} -t 'cd #{current_path} && #{command}')
19  end
20end