false"?-6ren"> false"?-即使我从未在最初将列添加到表的迁移中指定 :null => false,rails 仍会在 schema.rb 中生成代码,将列指定为有 :null => false。为什么是这样?如果我在我的机器上-6ren">
gpt4 book ai didi

ruby-on-rails - 为什么 Rails 在 schema.rb 中的所有列上设置 ":null => false"?

转载 作者:行者123 更新时间:2023-12-04 05:36:55 27 4
gpt4 key购买 nike

即使我从未在最初将列添加到表的迁移中指定 :null => false,rails 仍会在 schema.rb 中生成代码,将列指定为有 :null => false。为什么是这样?如果我在我的机器上开发,然后在我的生产机器上使用 rake db:schema:load,我会得到非常不同的行为!

编辑:即使我删除 schema.rb 并运行 rake db:schema:dump,它仍然会显示 :null => false在新模式上,即使它没有像实际数据库中那样定义。它似乎无法判断列是否被标记为允许空值。如果有帮助,我正在使用 SQLite。

最佳答案

我真的很讨厌这太微妙了,但问题是我使用的是 sqlite3 gem 而不是 sqlite3-ruby。一旦我在 environment.rb 中更正了它,一切都变得更好了。

关于ruby-on-rails - 为什么 Rails 在 schema.rb 中的所有列上设置 ":null => false"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563297/

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