使用Rails迁移将类型为“datetime”的mysql列转换为“time”

时间:2015-07-30 02:15:18

标签: mysql ruby-on-rails datetime

我创建的迁移似乎会将列类型从datetime更改为time,但它仍然将内容存储为日期时间。

我的迁移看起来像这样:

class ChangeEventStartTime < ActiveRecord::Migration
  def change
    change_column :events, :start_time, :time
  end
end

我运行迁移。一切都很好......当我检查列的类型时:

irb(main):010:0> Event.columns_hash["start_time"].type
=> :datetime

我还需要做些什么吗?

1 个答案:

答案 0 :(得分:1)

确保您已运行迁移。

因为,如果MySQL类型是DATETIME的{​​{1}},则Rails表示为TIMESTAMP。但对于DateTimeDATE,Rails按原样表示:日期和时间。仅针对TIME / DATETIME,Rails会为我们做出自动决定。其余的,它保持原样。