以前は、それ3.0
を行う方法がありました:
# ...
set :mysql_password, proc { Capistrano::CLI.password_prompt "Gimme remote database server password. Don't worry, I won't tell anyone: " }
# ...
namespace :db do
desc 'Dump remote database'
task :dump do
run "mysqldump -u #{mysql_user} -p #{mysql_database} > ~/#{mysql_database}.sql" do |channel, stream, data|
if data =~ /^Enter password:/
channel.send_data "#{mysql_password}\n"
end
end
end
end
パスワードの入力を求められますが、入力しても表示されず、ログと出力にその痕跡が残りません。
今、3.0
私が見つけた唯一の方法として:
# ...
namespace :db do
desc 'Dump remote database'
task :dump do
ask :mysql_password, nil
on roles(:db) do
execute "mysqldump -u#{fetch :mysql_user} -p#{fetch :mysql_password} #{fetch :mysql_database} > ~/#{fetch :mysql_database}.sql"
end
end
end
それは仕事をしますが、どこでもパスワードを明らかにします。
でパスワード プロンプトを表示するための安全な方法を見つけた人はいます3.0
か? ありがとう!