Skip to content

Latest commit

 

History

History
32 lines (24 loc) · 1.08 KB

make-remove-column-migration-reversible.md

File metadata and controls

32 lines (24 loc) · 1.08 KB

Make Remove Column Migration Reversible

The Rails migration DSL includes a #remove_column method for removing a column from a table.

The two required values are the table name and the column name.

class RemoveNotesColumnFromTodo < ActiveRecord::Migration[5.2]
  def change
    remove_column :todos, :notes
  end
end

This on it's own is not reversible though. If you were to run a db:rollback with this migration, Rails wouldn't know what type to use when re-adding the column.

To make it reversible, you need to add in the column type as a third argument.

    remove_column :todos, :notes, :string

Note: perhaps more importantly, this column isn't reversible in the sense that when you remove the column, you are throwing away all the data associated with that column. Be sure you're ready to part with this data before deploying a migration like this.

source