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.