Rails 3,将模型中的字段从字符串类型更改为日期时间类型

3

在制作我的模型时,我将行类型设置为字符串(当时并不知道日期时间)。目前有很多记录填写了该行。除了删除然后重新添加它,是否有一种安全的方法可以通过迁移将模型的行转换为日期时间?

谢谢!

2个回答

7
根据文档,这是将字符串转换为日期时间的迁移示例。但我不确定它是否有效,建议在进入生产环境之前先在开发/测试环境中尝试一下。
class ChangeColumnToUsers < ActiveRecord::Migration
  def self.up
    change_column :users, :created_at, :datetime

  end

  def self.down
    change_column :users, :created_at, :string
  end
end

MySQL似乎会执行内部的CONVERT(users.created_at, DATETIME) -- 我发现只要我的created_at列中的字符串格式正确,这个操作就可以无缝运行。 - Aaron Gibralter

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接