Method: ActiveRecord::ConnectionAdapters::SchemaStatements#remove_column
- Defined in:
- activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
#remove_column(table_name, column_name, type = nil, **options) ⇒ Object
Removes the column from the table definition.
remove_column(:suppliers, :qualification)
The type and options parameters will be ignored if present. It can be helpful to provide these in a migration’s change method so it can be reverted. In that case, type and options will be used by #add_column. Depending on the database you’re using, indexes using this column may be automatically removed or modified to remove this column from the index.
If the options provided include an if_exists key, it will be used to check if the column does not exist. This will silently ignore the migration rather than raising if the column was already removed.
remove_column(:suppliers, :qualification, if_exists: true)
699 700 701 702 703 |
# File 'activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb', line 699 def remove_column(table_name, column_name, type = nil, **) return if [:if_exists] == true && !column_exists?(table_name, column_name) execute "ALTER TABLE #{quote_table_name(table_name)} #{remove_column_for_alter(table_name, column_name, type, **)}" end |