A gem that adds rake db:flatten_migrations
to rake tasks in your rails project.
You have to ensure that your schema format is set to :ruby in configuration of
your project.
So in your project/config/environments/*.rb you should have a line:
config.active_record.schema_format = :ruby
Just add
gem 'flatten_migrations'
to development group in your Gemfile.
The task steps are as follows:
- run pending migrations (rake db:migrate)
- wipe out project/db/migrate direcotry
- generate initial migration from existing database schema file initial migration is assumed to be the one which was last executed
- create auxiliary migration which adjusts the schema_migrations table
- run the new migration
Both new migrations (initial and auxiliary) are irreversible.
Your database is safe and it should not erase any data except the schema_migrations table.