2017-04-18 174 views
0

在我的一个数据库表(我使用的是postgres)中有一列名为:active,它当前是一个布尔值,默认为true。我想将此列的类型从布尔型更改为整型,以便我可以使用此项目的枚举。我检查了文档和一些堆栈溢出的答案,但尚未找到一个确切的答案。我如何使用迁移进行此更改?如果这有所作为,我正在使用Rails 5。谢谢!在列表中将列数据类型从布尔值更改为整数

回答

2

你迁移文件应该是这样的

def change 
    change_column :table_name, :active, :integer 
end 

而且你需要重写所有先前的记录,可以在相同的迁移文件中完成一个整数值。

0

您可以创建一个新的迁移:

rails g migration change_data_type_for_active 

然后编辑迁移到使用change_column

class ChangeDataTypeForActive < ActiveRecord::Migration 

    def self.up 
    change_column :table_name, :active, :integer 
    end 

    def self.down 
    change_column :table_name, :active, :boolean 
    end 

end 

然后运行迁移:

rake db:migrate 

之所以定义updown方法是你可以返回哟u数据库到previos状态:

rake db:rollback 
相关问题