Class: Flydata::Util::MysqlUtil
- Inherits:
-
Object
- Object
- Flydata::Util::MysqlUtil
- Defined in:
- lib/flydata/util/mysql_util.rb
Constant Summary collapse
- DEFAULT_MYSQL_CMD_OPTION =
"--default-character-set=utf8 --protocol=tcp"
Class Method Summary collapse
-
.generate_mysql_cmd(option) ⇒ Object
Generate mysql/mysqldump command with options options must be hash - command # mysql(default) | mysqldump - host - port - username - password - database - tables # array - ssl_ca - custom_option # string.
-
.generate_mysql_ddl_dump_cmd(option) ⇒ Object
DDL_DUMP_CMD_TEMPLATE = "MYSQL_PWD="%s" mysqldump --protocol=tcp -d -h %s -P %s -u %s %s %s".
- .generate_mysql_show_grants_cmd(option) ⇒ Object
-
.generate_mysqldump_with_master_data_cmd(option) ⇒ Object
MYSQL_DUMP_CMD_TEMPLATE = "MYSQL_PWD="%s" mysqldump --default-character-set=utf8 --protocol=tcp -h %s -P %s -u%s --skip-lock-tables --single-transaction --hex-blob %s %s %s".
- .generate_mysqldump_without_master_data_cmd(option) ⇒ Object
Class Method Details
.generate_mysql_cmd(option) ⇒ Object
Generate mysql/mysqldump command with options options must be hash
- command # mysql(default) | mysqldump
- host
- port
- username
- password
- database
- tables # array
- ssl_ca
- custom_option # string
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/flydata/util/mysql_util.rb', line 17 def self.generate_mysql_cmd(option) raise ArgumentError.new("option must be hash.") unless option.kind_of?(Hash) option = convert_keys_to_sym(option) command = option[:command] ? option[:command] : 'mysql' host = option[:host] ? "-h #{option[:host]}" : nil port = option[:port] ? "-P #{option[:port]}" : nil username = option[:username] ? "-u#{option[:username]}" : nil password = if !(option[:password].to_s.empty?) "-p\"#{option[:password].gsub('$','\\$').gsub('"','\\"').gsub('`', '\\\`')}\"" else nil end database = option[:database] tables = option[:tables] ? option[:tables].join(' ') : nil ssl_ca = option[:ssl_ca] ? option[:ssl_ca] : nil default_option = option[:no_default_option] ? "" : DEFAULT_MYSQL_CMD_OPTION default_option += " --ssl-ca=#{ssl_ca}" if ssl_ca default_option = nil if default_option == '' custom_option = option[:custom_option] [command, host, port, username, password, default_option, custom_option, database, tables].compact.join(' ') end |
.generate_mysql_ddl_dump_cmd(option) ⇒ Object
DDL_DUMP_CMD_TEMPLATE = "MYSQL_PWD="%s" mysqldump --protocol=tcp -d -h %s -P %s -u %s %s %s"
44 45 46 47 48 49 |
# File 'lib/flydata/util/mysql_util.rb', line 44 def self.generate_mysql_ddl_dump_cmd(option) opt = option.dup opt[:command] = 'mysqldump' opt[:custom_option] = '-d' generate_mysql_cmd(opt) end |
.generate_mysql_show_grants_cmd(option) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/flydata/util/mysql_util.rb', line 69 def self.generate_mysql_show_grants_cmd(option) opt = option.dup opt[:command] = 'mysql' opt[:custom_option] = '-e "SHOW GRANTS;"' generate_mysql_cmd(opt) end |
.generate_mysqldump_with_master_data_cmd(option) ⇒ Object
MYSQL_DUMP_CMD_TEMPLATE = "MYSQL_PWD="%s" mysqldump --default-character-set=utf8 --protocol=tcp -h %s -P %s -u%s --skip-lock-tables --single-transaction --hex-blob %s %s %s"
52 53 54 55 56 57 |
# File 'lib/flydata/util/mysql_util.rb', line 52 def self.generate_mysqldump_with_master_data_cmd(option) opt = option.dup opt[:command] = 'mysqldump' opt[:custom_option] = '--skip-lock-tables --single-transaction --hex-blob --flush-logs --master-data=2' generate_mysql_cmd(opt) end |
.generate_mysqldump_without_master_data_cmd(option) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/flydata/util/mysql_util.rb', line 59 def self.generate_mysqldump_without_master_data_cmd(option) opt = option.dup opt[:command] = 'mysqldump' opt[:custom_option] = '--skip-lock-tables --single-transaction --hex-blob' if opt[:result_file] opt[:custom_option] << " --result-file=#{opt[:result_file]}" end generate_mysql_cmd(opt) end |