【问题标题】:Should I flatten Rails migrations?我应该扁平化 Rails 迁移吗?
【发布时间】:2009-12-15 20:02:34
【问题描述】:

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

你们中有人这样做过吗?为什么?

【问题讨论】:

    标签: ruby-on-rails migration schema.rb


    【解决方案1】:

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

    【讨论】:

    • 因为有时旧的迁移和代码更改不再兼容。那么你就不能从头开始运行所有迁移而不破解旧迁移。
    【解决方案2】:

    此外,一些大型的 Ruby on Rails 工具包(比如现在让你在 Rails 应用程序中建立电子商务网站的那个让我忘记了),将它们的迁移扁平化。

    我还知道有大量迁移的项目每隔一段时间就会执行此操作,以减少运行 rake db:migrate 开始到结束所需的时间(例如,在持续集成服务器上)

    【讨论】:

    • 那将是狂欢项目。他们最近一直在谈论扁平化迁移
    【解决方案3】:

    您可以使用 rake db:schema:load 一步导入整个架构。建议这样做,而不是运行大量迁移。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-26
      • 2020-03-17
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      相关资源
      最近更新 更多