Method: ActiveRecord::ConnectionAdapters::SchemaStatements#bulk_change_table
- Defined in:
- activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
#bulk_change_table(table_name, operations) ⇒ Object
:nodoc:
1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 |
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb', line 1555 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 |