A complex migration may involve processes that Active Record does not know how to reverse. You can use reversible to specify what to do when a migration is run and when it needs to be rolled back. For example: class ExampleMigration < ActiveRecord::Migration def change create_table :distributors do |t| t.string :zipcode […]