代码之家  ›  专栏  ›  技术社区  ›  umar

在使用时间戳生成某些迁移之后,是否可以阻止Rails使用时间戳前缀进行迁移?

  •  0
  • umar  · 技术社区  · 15 年前

    在我的migrate文件夹中有大约100个带有数字前缀的迁移,然后大约100个带有时间戳前缀的迁移,所以我猜在某些时候Rails版本已经更新了。现在我想停止Rails使用时间戳前缀,因为我更喜欢数字前缀。实现这一目标的最佳方法是什么,或者这是可能的?一种方法可能是手动按照前缀的排序顺序重命名前缀,然后转到dev、staging和production数据库,并用新的数字更改时间戳,但这种方法看起来很混乱。有没有其他方法可以做到这一点?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Brian Hogan    15 年前

    如果你有一个团队,或者你想进行分支和其他工作,那么时间戳的迁移是非常棒的。但是,您可以通过配置设置更改迁移的命名方式。

    #environment.rb
    config.active_record.timestamped_migrations = false
    

    也。。。。我维护的Lazy_开发人员插件有一个任务,可以将所有迁移文件转换为全新的迁移。我不保证它会对你有用,但我已经在一些项目中使用它来获得我想要的东西。

    http://github.com/napcs/lazy_developer

    它基本上采用schema.rb并从中进行新的迁移。它也试图处理您的索引,但它确实使用迁移编号的时间戳,将创建的新迁移设置为与上次迁移相同的名称,以便正确维护数据库的版本控制。

    同样,不能保证这会有效,所以请先备份或分支您的项目!

    如果我是你,我会把这个放在一边。有迁移名是一种惯例,实际上,您最多只能使用一次。如果您要部署到一个新的服务器或将项目签出到一台新的机器上,那么您应该使用rake db:schema:load,因为它要快得多。迁移是为了开发和增量数据库更改。正如我所说,时间戳的迁移对于多个用户来说是一个很大的影响。