我有一个有很多模型和数据库表的rails网站.在所有这些中,我想将:id主键列更改为bigint而不是int,因为它将跨越MySQL的整数int(11)限制.
我不想使用他们建议我们做的其他帖子中建议的方法:id => false,同时创建表并添加自定义列:id指定大小.
我已经有很多数据,我不希望id列ids也改变,因为我正在使用它为一些has_many belongs_to关系,并可以打破所有链接.
请建议我如何将int(11)中的change_column id更改为bigint,而无需重新创建表和/或丢失数据和id值
别忘了auto_increment: true
.
class NameOfYourMigration < ActiveRecord::Migration
def up
change_column :table_name, :id, :integer, limit: 8, auto_increment: true
end
def down
change_column :table_name, :id, :integer, auto_increment: true
end
end