aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorAlex Coomans <alexc@squareup.com>2015-05-12 11:45:16 -0700
committerAlex Coomans <alexc@squareup.com>2015-05-12 17:06:49 -0700
commit01f7d14494f2a82d87386dd105075c2ae5bd6ef3 (patch)
tree0be782ad5f15ebc92573e20ca971c3de048399e0 /activerecord/lib
parente99d909928e4b919ace290c3ace3fbaceeba70da (diff)
downloadrails-01f7d14494f2a82d87386dd105075c2ae5bd6ef3.tar.gz
rails-01f7d14494f2a82d87386dd105075c2ae5bd6ef3.tar.bz2
rails-01f7d14494f2a82d87386dd105075c2ae5bd6ef3.zip
Add full set of MySQL CLI options to support SSL authentication when using db:structure dump and load
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/tasks/mysql_database_tasks.rb24
1 files changed, 15 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
index eafbb2c249..bc80275a88 100644
--- a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
+++ b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
@@ -130,15 +130,21 @@ IDENTIFIED BY '#{configuration['password']}' WITH GRANT OPTION;
end
def prepare_command_options(command)
- args = [command]
- args.concat(['--user', configuration['username']]) if configuration['username']
- args << "--password=#{configuration['password']}" if configuration['password']
- args.concat(['--default-character-set', configuration['encoding']]) if configuration['encoding']
- configuration.slice('host', 'port', 'socket').each do |k, v|
- args.concat([ "--#{k}", v.to_s ]) if v
- end
-
- args
+ args = {
+ 'host' => '--host',
+ 'port' => '--port',
+ 'socket' => '--socket',
+ 'username' => '--user',
+ 'password' => '--password',
+ 'encoding' => '--default-character-set',
+ 'sslca' => '--ssl-ca',
+ 'sslcert' => '--ssl-cert',
+ 'sslcapath' => '--ssl-capath',
+ 'sslcipher' => '--ssh-cipher',
+ 'sslkey' => '--ssl-key'
+ }.map { |opt, arg| "#{arg}=#{configuration[opt]}" if configuration[opt] }.compact
+
+ [command, *args]
end
end
end