我有一个最近升级到 Rails 4.2.0 和 Ruby 2.2.0 的应用程序。自升级以来,我在生产环境中看到以下异常:
Mysql2::Error: 字段 'item_type' 没有默认值:INSERT INTO
versions
VALUES ()
这似乎并非始终如一地发生。我只知道这种情况的存在是因为 ExceptionNotification 电子邮件与其他用户发生了这种情况。我多次尝试重新创建该问题,但尽管执行了发生这种情况的相同代码,但它从未发生在我身上。
另外我想提一下,在所有调用 has_paper_trail 的模型中,我没有传递任何选项,因此对跟踪的属性没有限制。似乎如果正在插入一个版本,它应该总是有某种变化。
在我们从 Rails 3.2.11 和 Ruby 1.9.3 升级到 Rails 4.2.0 和 Ruby 2.2.0 之前,这种情况从未发生过。
我只是检查了 GitHub,根据 Gemfile.lock 看起来我们从 paper_trail 2.7.2 到 3.0.6。
是什么导致这种情况发生,如何解决?