Ruby on Rails:将所有迁移合并为一个

时间:2014-05-18 10:17:30

标签: ruby-on-rails migration

我正在尝试将所有迁移合并为一个(只是为了尝试一下),使用此博客建议:我个人更喜欢在每个版本结束时将所有现有迁移折叠为单个迁移,只需将schema.rb复制到“001_collapsed_schema.rb”即可。这样,您就不会需要“维护”这些较旧的迁移。

因此,我删除了所有迁移,创建了新的迁移文件 001_collapsed_schema.rb ,并将 schema.rb 复制到其中。然后我尝试运行

rake db:migrate

并获取此 NameError:未初始化的常量CollapsedSchema 错误。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为您不应该将schema.rb复制到迁移文件中,而是将所有不同的迁移文件合并为一个。

这样可以减少迁移文件,并在将来更快地准备新的数据库(例如,不必经过1000个迁移文件,而只需要通过100个)。

也许您提到的博客的作者正在这样做,以保留她的schema.rb的不同版本,在这种情况下,您不能将它们作为迁移执行,而是在需要时通过替换您的架构回滚到它们。 rb与他们并发布:

rake db:schema:load # deletes all DB data!

另见相关SO问题中的讨论:rake db:schema:load vs. migrations