Method: ActiveRecord::ConnectionAdapters::SchemaStatements#remove_columns

Defined in:
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb

#remove_columns(table_name, *column_names, type: nil, **options) ⇒ Object

Removes the given columns from the table definition.

remove_columns(:suppliers, :qualification, :experience)

type and other column options can be passed to make migration reversible.

remove_columns(:suppliers, :qualification, :experience, type: :string, null: false)


675
676
677
678
679
680
681
682
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb', line 675

def remove_columns(table_name, *column_names, type: nil, **options)
  if column_names.empty?
    raise ArgumentError.new("You must specify at least one column name. Example: remove_columns(:people, :first_name)")
  end

  remove_column_fragments = remove_columns_for_alter(table_name, *column_names, type: type, **options)
  execute "ALTER TABLE #{quote_table_name(table_name)} #{remove_column_fragments.join(', ')}"
end