class Convergence::DefaultParameter::MysqlDefaultParameter
Constants
- DEFAULT_COLLATE_NAME
- DEFAULT_COLUMN_PARAMETERS
- DEFAULT_COLUMN_TYPE_PARAMETERS
- DEFAULT_INDEX_PARAMETERS
- DEFAULT_TABLE_PARAMETERS
- TEXT_TYPE
Public Class Methods
new()
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 77 def initialize end
Public Instance Methods
append_default_parameter(table)
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 87 def append_default_parameter(table) append_column_default_parameter(table) append_table_default_parameter(table) append_index_default_parameter(table) table end
remove_default_parameter(table)
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 80 def remove_default_parameter(table) remove_column_default_parameter(table) remove_table_default_parameter(table) remove_index_default_parameter(table) table end
Private Instance Methods
append_column_default_parameter(table)
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 132 def append_column_default_parameter(table) table.columns.each do |_column_name, column| type = column.type parameters = DEFAULT_COLUMN_PARAMETERS .merge(DEFAULT_COLUMN_TYPE_PARAMETERS[type] || {}) .merge(column.options) if TEXT_TYPE.include?(type) character_set = table.table_options[:default_charset] || DEFAULT_TABLE_PARAMETERS[:default_charset] parameters = { character_set: character_set, collate: table.table_options[:collate] || DEFAULT_COLLATE_NAME[character_set.downcase] }.merge(parameters) end column.options = parameters end end
append_index_default_parameter(table)
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 156 def append_index_default_parameter(table) table.indexes.each do |_column_name, column| parameters = DEFAULT_INDEX_PARAMETERS.merge(column.options) column.options = parameters end end
append_table_default_parameter(table)
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 149 def append_table_default_parameter(table) table.table_options = DEFAULT_TABLE_PARAMETERS.merge(table.table_options) if table.table_options[:collate].nil? table.table_options.merge!(collate: DEFAULT_COLLATE_NAME[table.table_options[:default_charset].downcase]) end end
remove_column_default_parameter(table)
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 96 def remove_column_default_parameter(table) table.columns.each do |_column_name, column| type = column.type parameters = DEFAULT_COLUMN_PARAMETERS.merge(DEFAULT_COLUMN_TYPE_PARAMETERS[type] || {}) if TEXT_TYPE.include?(type) character_set = table.table_options[:default_charset] || DEFAULT_TABLE_PARAMETERS[:default_charset] parameters = parameters.merge( character_set: character_set, collate: table.table_options[:collate] || DEFAULT_COLLATE_NAME[character_set.downcase]) end parameters.each do |k, v| if !column.options[k].nil? && column.options[k].to_s.downcase == v.to_s.downcase column.options.delete(k) end end end end
remove_index_default_parameter(table)
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 122 def remove_index_default_parameter(table) table.indexes.each do |_, va| va.options.each do |k, v| if !DEFAULT_INDEX_PARAMETERS[k].nil? && DEFAULT_INDEX_PARAMETERS[k].to_s.downcase == v.to_s.downcase va.options.delete(k) end end end end
remove_table_default_parameter(table)
click to toggle source
# File lib/convergence/default_parameter/mysql_default_parameter.rb, line 114 def remove_table_default_parameter(table) table.table_options.each do |k, v| if !DEFAULT_TABLE_PARAMETERS[k].nil? && DEFAULT_TABLE_PARAMETERS[k].downcase == v.to_s.downcase table.table_options.delete(k) end end end