Class: ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::SchemaCreation

Inherits:
ActiveRecord::ConnectionAdapters::AbstractAdapter::SchemaCreation show all
Extended by:
Forwardable
Defined in:
lib/activerecord-mysql-unsigned/active_record/v4_1/connection_adapters/abstract_mysql_adapter.rb

Instance Method Summary collapse

Methods inherited from ActiveRecord::ConnectionAdapters::AbstractAdapter::SchemaCreation

#type_to_sql

Instance Method Details

#visit_AddColumn(o) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/activerecord-mysql-unsigned/active_record/v4_1/connection_adapters/abstract_mysql_adapter.rb', line 10

def visit_AddColumn(o)
  sql_type = type_to_sql(o.type.to_sym, o.limit, o.precision, o.scale, o.unsigned)
  sql = "ADD #{quote_column_name(o.name)} #{sql_type}"
  add_column_position!(
    add_column_options!(sql, column_options(o)),
    column_options(o)
  )
end

#visit_ChangeColumnDefinition(o) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/activerecord-mysql-unsigned/active_record/v4_1/connection_adapters/abstract_mysql_adapter.rb', line 19

def visit_ChangeColumnDefinition(o)
  column = o.column
  options = o.options
  sql_type = type_to_sql(o.type, options[:limit], options[:precision], options[:scale], options[:unsigned])
  change_column_sql = "CHANGE #{quote_column_name(column.name)} #{quote_column_name(options[:name])} #{sql_type}"
  add_column_options!(change_column_sql, options.merge(column: column))
  add_column_position!(change_column_sql, options)
end

#visit_ColumnDefinition(o) ⇒ Object



28
29
30
31
32
33
# File 'lib/activerecord-mysql-unsigned/active_record/v4_1/connection_adapters/abstract_mysql_adapter.rb', line 28

def visit_ColumnDefinition(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)} #{sql_type}"
  add_column_options!(column_sql, column_options(o)) unless o.primary_key?
  column_sql
end