どうして rails では timestamp ではなく datetime を created_at などに利用するのですか?
Rails の ActiveRecord では、 migration において t.timestamps
で導入される created_at
や updated_at
のカラムについて、少なくとも MySQL においては、 datetime 型を DB 上に作成します。
datetime
型は、いうなればその時刻をタイムゾーンなしで文字列で DB 上に保存しているのに近く、そのデータが動作していた AP(Rails) サーバーがどのタイムゾーンで動いていたのかの情報がない限り、そのデータは正しく取扱えなくなってしまいます。
database に時刻を保存するのならば、なので、 timestamp
型を用いた方が良さそうな気がするのですが、 Rails ではそのような設計にはなっていないです。
質問
- なぜ、 rails では
created_at
やupdated_at
にtimestamp
ではなくdatetime
を利用するのでしょうか?