Ruby1.8.7でmysql20.3.11を使用してRails3.2.2を使用しています(mysql 14.14サーバーに対して)。orcreated_at
値updated_at
が無効なDateTimeになることがあり、アプリでメッセージ付きの例外がスローされます"Invalid date: 2022-03-00 00:00:00"
。
created_at
と列を明示的に作成、設定、読み取り、または実行しているわけではありませんupdated_at
。
mysql
クライアントを介してテーブルを検査すると、ほとんどの場合、これらの各列の値は「 0000-00-00 00:00:00
」であり、最終的nil
にはRailsのようになります。ただし、いくつかの行には「」などの値が表示されます2022-03-00 00:00:00
(私が知る限り、これらはすべて2022年のものですが)。
.destroy()
興味深いことに、 Railsはオブジェクトを作成できないため、Railsから実行することさえできません。
それらの列に無効な日付を設定している可能性はありますか?
編集:これはすべてのテーブルで発生しています。これが私のschema.rbであり、テーブルの1つに対するすべての移行です:https ://gist.github.com/2930655
Edit2:私は自分で解決しました(以下の私の答えを参照)が、それがバグであるかどうか、もしそうなら、バグがどのパッケージに含まれているか(ActiveRecord?)を検討していただければ幸いです。