module ActiveRecord::Mysql::Awesome::SchemaCreation

Public Instance Methods

visit_AddColumn(o) click to toggle source
# File lib/activerecord-mysql-awesome/active_record/connection_adapters/abstract_mysql_adapter.rb, line 61
def visit_AddColumn(o)
  add_column_position!("ADD #{accept(o)}", column_options(o))
end

Private Instance Methods

add_column_options!(sql, options) click to toggle source
Calls superclass method
# File lib/activerecord-mysql-awesome/active_record/connection_adapters/abstract_mysql_adapter.rb, line 90
def add_column_options!(sql, options)
  if options[:charset]
    sql << " CHARACTER SET #{options[:charset]}"
  end
  if options[:collation]
    sql << " COLLATE #{options[:collation]}"
  end
  if options[:primary_key] == true
    sql << " PRIMARY KEY"
  end
  super
end
add_column_position!(sql, options) click to toggle source
# File lib/activerecord-mysql-awesome/active_record/connection_adapters/abstract_mysql_adapter.rb, line 103
def add_column_position!(sql, options)
  if options[:first]
    sql << " FIRST"
  elsif options[:after]
    sql << " AFTER #{quote_column_name(options[:after])}"
  end
  sql
end
column_options(o) click to toggle source
Calls superclass method
# File lib/activerecord-mysql-awesome/active_record/connection_adapters/abstract_mysql_adapter.rb, line 79
def column_options(o)
  column_options = super
  column_options[:first] = o.first
  column_options[:after] = o.after
  column_options[:auto_increment] = o.auto_increment
  column_options[:primary_key] = o.primary_key
  column_options[:charset]   = o.charset
  column_options[:collation] = o.collation
  column_options
end
type_to_sql(type, limit, precision, scale, unsigned) click to toggle source
# File lib/activerecord-mysql-awesome/active_record/connection_adapters/abstract_mysql_adapter.rb, line 112
def type_to_sql(type, limit, precision, scale, unsigned)
  @conn.type_to_sql(type.to_sym, limit, precision, scale, unsigned)
end
visit_ChangeColumnDefinition(o) click to toggle source
# File lib/activerecord-mysql-awesome/active_record/connection_adapters/abstract_mysql_adapter.rb, line 74
def visit_ChangeColumnDefinition(o)
  change_column_sql = "CHANGE #{quote_column_name(o.name)} #{accept(o.column)}"
  add_column_position!(change_column_sql, column_options(o.column))
end
visit_ColumnDefinition(o) click to toggle source
# File lib/activerecord-mysql-awesome/active_record/connection_adapters/abstract_mysql_adapter.rb, line 67
def visit_ColumnDefinition(o)
  o.sql_type = type_to_sql(o.type.to_sym, o.limit, o.precision, o.scale, o.unsigned)
  column_sql = "#{quote_column_name(o.name)} #{o.sql_type}"
  add_column_options!(column_sql, column_options(o)) unless o.type == :primary_key
  column_sql
end