【发布时间】:2021-01-21 21:28:03
【问题描述】:
我创建了各种迁移来为模型 :foo 添加一个布尔列,回填它并向它添加一个空约束。
我运行了迁移并检查了git diff schema.rb 文件,该文件明显发生了变化。
经过进一步检查,我注意到在我运行迁移时,其他 5 个模型中所有称为 cover_file_size 的各个列的类型已从 integer 更改为 bigint。
这些模型甚至没有相互关联,我想不出未经我同意发生这种情况的原因。
Rails 中是否存在某种可能引发所有这些更改的默认行为? integer 类型的列变成bigint 有什么问题吗?到目前为止,我在运行该平台时没有遇到任何问题。
【问题讨论】:
-
运行迁移后,Rails 会将当前数据库模式转储为 schema.rb 文件,如果您有另一个用户更新了 schema.rb 并且您有不同的数据库设置,您最终可能会使用不同的 schema.rb 文件,其中的更改与您刚刚运行的实际迁移无关。我对此并不太担心,除非您特别需要使用架构文件,否则应该没问题。您可以在任何地方使用相同的数据库来最小化这种情况。
标签: ruby-on-rails database migration