method

bulk_change_table

Importance_0
v7.1.3.2 - Show latest stable - 0 notes - Class: ActiveRecord::ConnectionAdapters::SchemaStatements
bulk_change_table(table_name, operations) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# 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
Register or log in to add new notes.