我应该展平Rails迁移吗?

可以将db / migrate / *替换为db / schema.rb的内容,这样您只需要一个迁移步骤。

你们有没有这样做过? 为什么?

你为什么想做这个? 如果您不想运行所有迁移,可以运行rake db:schema:load 。 迁移不是(仅)用于初始化新数据库,而是用于将其迁移到另一个版本。

此外,一些重要的Ruby on Rails工具包(就像那个让我在你的Rails应用程序中设置电子商务网站的我现在正在思考的工具包),平淡了他们的迁移。

我也知道有大量迁移的项目每隔一段时间就会这样做,以减少运行rake db所需的时间:从头到尾迁移(比如,在持续集成服务器上)

您可以执行rake db:schema:load以一步导入整个模式。 建议这样做,而不是运行大量的迁移。