【发布时间】:2013-04-16 13:03:28
【问题描述】:
我有一个名为“p_type”的列,它是字符串,因为我认为将类型 A、B 和 C 作为字符串
现在我意识到最好将它作为bitmask,这样我就可以同时拥有A 和C。
如果我这样做
change_column :cars, :p_type, :integer
我要么丢失所有现有的 p_type 数据,要么出现严重错误,迁移会以某种方式扭曲数据(我不敢尝试)
有没有办法将列类型更改为 :integer 并在迁移文件中具有某种功能
if A
p_type = 1
elsif B
p_type = 2
elsif C
p_type = 4
end
所以迁移会改变数据类型和数据本身?
【问题讨论】: