问题
It's possible to replace db/migrate/* with the contents of db/schema.rb, so that you only have one migration step.
Do any of you ever do this? Why?
回答1:
Why would you want to do this? You could just run rake db:schema:load
if you don't want to run all migrations. Migrations are used not (only) to initialize a new database, but to migrate it to another version.
回答2:
Also, some big Ruby on Rails kit packages (like that one that's slipping my mind now that lets you set up an ecommerce site in your Rails app), flatten their migrations.
I've also known of projects with a ton of migrations to do this every once in a while to reduce the amount of time it takes to run rake db:migrate start to finish (say, on the continuous integration server)
回答3:
You can do rake db:schema:load to import the entire schema in one step. This is recommended, as opposed to running a ton of migrations.
来源:https://stackoverflow.com/questions/1910001/should-i-flatten-rails-migrations