method
bulk_change_table
v7.1.3.2 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::SchemaStatements
bulk_change_table(table_name, operations)public
No documentation available.
# File activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb, line 1515
def bulk_change_table(table_name, operations) # :nodoc:
sql_fragments = []
non_combinable_operations = []
operations.each do |command, args|
table, arguments = args.shift, args
method = :"#{command}_for_alter"
if respond_to?(method, true)
sqls, procs = Array(send(method, table, *arguments)).partition { |v| v.is_a?(String) }
sql_fragments.concat(sqls)
non_combinable_operations.concat(procs)
else
execute "ALTER TABLE #{quote_table_name(table_name)} #{sql_fragments.join(", ")}" unless sql_fragments.empty?
non_combinable_operations.each(&:call)
sql_fragments = []
non_combinable_operations = []
send(command, table, *arguments)
end
end
execute "ALTER TABLE #{quote_table_name(table_name)} #{sql_fragments.join(", ")}" unless sql_fragments.empty?
non_combinable_operations.each(&:call)
end