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
- .convert_keys_to_sym(hash) ⇒ Object
-
.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 - 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
.convert_keys_to_sym(hash) ⇒ Object
72 73 74 75 76 77 78 79 |
# File 'lib/flydata/util/mysql_util.rb', line 72 def self.convert_keys_to_sym(hash) hash.inject(hash.dup) do |ret, (k, v)| if k.kind_of?(String) && ret[k.to_sym].nil? ret[k.to_sym] = v end ret end end |
.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
- custom_option # string
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/flydata/util/mysql_util.rb', line 16 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('`', '\\\`')}\"" else nil end database = option[:database] tables = option[:tables] ? option[:tables].join(' ') : nil default_option = option[:no_default_option] ? nil : DEFAULT_MYSQL_CMD_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"
38 39 40 41 42 43 |
# File 'lib/flydata/util/mysql_util.rb', line 38 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
63 64 65 66 67 68 |
# File 'lib/flydata/util/mysql_util.rb', line 63 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"
46 47 48 49 50 51 |
# File 'lib/flydata/util/mysql_util.rb', line 46 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
53 54 55 56 57 58 59 60 61 |
# File 'lib/flydata/util/mysql_util.rb', line 53 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 |