Rails ActiveRecord Migration中的rename_column是否保留旧的列数据类型?

时间:2016-07-19 07:08:23

标签: ruby-on-rails ruby rails-activerecord

我正在尝试运行rails迁移,其中我只更改列名称。那么,这个rails需要保持与旧列相同的data type或尝试根据column content进行猜测?

def change
   rename_column :marks, :percent, :percentage
end

旧类型为decimal,迁移后仍为decimal。 我想知道保留的类型是因为现有值为decimal,或者是因为old data type

2 个答案:

答案 0 :(得分:2)

rename_column仅用于更改列的名称而不考虑数据类型。

在给定的迁移中,您只将名称从百分比更改为百分比,因此rails不关心数据类型,只更改列的名称。数据类型没有变化,它将保持原样。是小数,浮点数,字符串等。

答案 1 :(得分:0)

是的,rename_column仅使用3个参数重命名列的名称。 change_column会更改类型

def change
   change_column :marks, :percent, :text
end