We have around 100 database migration files. Many of them make schema changes which are irreversible. There are also later migrations which change or remove tables which were cr
I use rake db:setup
and rake db:reset
exclusively (never rake db:migrate
) to install a new database, on a production server or on a new development machine. Those commands already use the schema.rb
or structure.sql
to recreate the database.
That said, it is really easy to make a copy of schema.rb
, use that as a new starting-point and delete all the old migrations.
I prefer to keep my migrations for historic purposes, but that is a matter of taste.