【发布时间】:2011-01-11 15:27:26
【问题描述】:
在制作模型时,我将行类型设为字符串(当时我不知道日期时间)。目前我有很多记录都填满了该行。有没有一种安全的方法可以通过迁移将模型的行转换为日期时间 - 除了删除它,然后再添加回来?
谢谢!
【问题讨论】:
标签: mysql ruby-on-rails ruby ruby-on-rails-3
在制作模型时,我将行类型设为字符串(当时我不知道日期时间)。目前我有很多记录都填满了该行。有没有一种安全的方法可以通过迁移将模型的行转换为日期时间 - 除了删除它,然后再添加回来?
谢谢!
【问题讨论】:
标签: mysql ruby-on-rails ruby ruby-on-rails-3
根据文档,这是一个在日期时间中转换字符串的迁移示例。我不确定它是否会起作用,因此您可能想在进入 prod 环境之前在 dev/stage 环境中尝试一下。
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
【讨论】:
CONVERT(users.created_at, DATETIME) -- 我发现这可以无缝地工作,因为我在 created_at 列中的字符串格式正确。
【讨论】: