即使我从未具体说明:null => false
在我最初向表添加列的迁移中,rails 仍然在中生成代码schema.rb
指定列具有:null => false
。为什么是这样?如果我在我的盒子上开发,然后使用rake db:schema:load
在我的生产盒子上,我会得到非常不同的行为!
编辑:即使我删除了schema.rb
并运行rake db:schema:dump
,它仍然把:null => false
即使新模式的定义与实际数据库中的定义不同。它似乎无法判断列是否被标记为允许空值。如果有帮助的话我正在使用 SQLite。
我真的很讨厌这太微妙了,但问题是我正在使用sqlite3
宝石代替sqlite3-ruby
。当我在environment.rb中更正它后,一切都变得更好了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)