Class: ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::SchemaCreation
Instance Method Summary
collapse
#initialize
Instance Method Details
#add_column_position!(sql, options) ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/activerecord-mysql-unsigned/active_record/v4/connection_adapters/abstract_mysql_adapter.rb', line 46
def add_column_position!(sql, options)
if options[:first]
sql << " FIRST"
elsif options[:after]
sql << " AFTER #{quote_column_name(options[:after])}"
end
end
|
#column_options(o) ⇒ Object
39
40
41
42
43
44
|
# File 'lib/activerecord-mysql-unsigned/active_record/v4/connection_adapters/abstract_mysql_adapter.rb', line 39
def column_options(o)
column_options = super
column_options[:first] = o.first
column_options[:after] = o.after
column_options
end
|
#type_to_sql(type, limit, precision, scale, unsigned = false) ⇒ Object
54
55
56
|
# File 'lib/activerecord-mysql-unsigned/active_record/v4/connection_adapters/abstract_mysql_adapter.rb', line 54
def type_to_sql(type, limit, precision, scale, unsigned = false)
@conn.type_to_sql type.to_sym, limit, precision, scale, unsigned
end
|
#visit_AddColumn(o) ⇒ Object
11
12
13
14
15
16
17
18
|
# File 'lib/activerecord-mysql-unsigned/active_record/v4/connection_adapters/abstract_mysql_adapter.rb', line 11
def visit_AddColumn(o)
sql_type = type_to_sql(o.type.to_sym, o.limit, o.precision, o.scale, o.unsigned)
add_column_sql = "ADD #{quote_column_name(o.name)} #{sql_type}"
add_column_options!(add_column_sql, column_options(o)) unless o.type.to_sym == :primary_key
add_column_position!(add_column_sql, column_options(o))
add_column_sql
end
|
#visit_ChangeColumnDefinition(o) ⇒ Object
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/activerecord-mysql-unsigned/active_record/v4/connection_adapters/abstract_mysql_adapter.rb', line 20
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)) unless o.type.to_sym == :primary_key
add_column_position!(change_column_sql, options)
change_column_sql
end
|
#visit_ColumnDefinition(o) ⇒ Object
31
32
33
34
35
36
37
|
# File 'lib/activerecord-mysql-unsigned/active_record/v4/connection_adapters/abstract_mysql_adapter.rb', line 31
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.type.to_sym == :primary_key
column_sql
end
|