gpt4 book ai didi

ruby-on-rails - Rails 中的聚合迁移

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:11 25 4
gpt4 key购买 nike

我有几十个 Rails DB 迁移是在一年多的时间里编写的。有没有办法将它们聚合到一个迁移中,这样我就可以看到数据库现在存在的完整 DDL 语句?我只需要当前的快照,而不需要我们如何获得它的所有历史记录。

最佳答案

聚合迁移是可能的,但可能不是一个好主意!

也许会问:

  • 你为什么要这样做?
  • 您真正需要多长时间一直迁移到 VERSION=0 然后再次备份?
  • 真的有东西坏了吗? (如果不是,则不要修复它)

我曾经遇到过同样的问题。我最终只是重新排序了我的迁移,因为模式的变化导致它不再正确向上/向下迁移。我会犹豫是否再这样做。

如果您有只添加字段或索引的迁移,那么也许您可以将它们与模型的主要迁移结合起来——但请注意您不能再重现旧情况,例如较旧的数据库转储可能与它们应该兼容的迁移编号不兼容——这可能是反对聚合的最大论据......

从技术上讲,您可以转储架构然后直接加载它 - 这是一种方式:

rake db:schema:dump

然后使用模式转储文件 db/schema.rb 的内容创建一个新的迁移

下面是一些类似的问题:


P.S.:我发现坚持使用旧的迁移编号方案很有用,其中迁移不使用时间戳 - 对我来说这效果更好(更容易看到它们的顺序)。

例如在你的 config/application.rb 文件中:

config.active_record.timestamped_migrations = false

关于ruby-on-rails - Rails 中的聚合迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7678858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com