我在 Ruby 1.8.7 上使用 Rails 3.2.2 和 mysql2 0.3.11(针对 mysql 14.14 服务器),有时 a created_at
orupdated_at
值将是无效的 DateTime,并导致我的应用程序抛出带有消息的异常"Invalid date: 2022-03-00 00:00:00"
。
我没有明确地创建、设置、阅读或对created_at
andupdated_at
列做任何事情。
通过mysql
客户端检查表,在大多数情况下,这些列中的每一列的值都是“ 0000-00-00 00:00:00
”,最终与nil
Rails 中一样。但是,有几行显示诸如“ 2022-03-00 00:00:00
”之类的值(尽管据我所知,它们都是不同的,但都在 2022 年)。
有趣的是,我什至不能.destroy()
从 Rails 运行,因为它不能创建对象。
什么可能会为这些列设置无效日期?
编辑:所有表都发生这种情况。这是我的 schema.rb,以及其中一张表的所有迁移:https ://gist.github.com/2930655
Edit2:我自己解决了它(请参阅下面的答案),但如果你能权衡它是否是一个错误,如果是这样,这个错误与哪个包(ActiveRecord?)有关。