我有一个Project
模型,它有依赖项,数据库中已有记录。
我想将Project.id
(它的主键)更改为UUID,而不仅仅是递增的整数。
如何编写将更改id的迁移,更新现有记录以获取UUID,以及更新其他表的外键中的引用?
答案 0 :(得分:0)
要从默认id
迁移到使用uuid
,请尝试按以下方式编写迁移:
class ChangeProjectsPrimaryKey < ActiveRecord::Migration
def change
add_column :projects, :uuid, :uuid, default: "uuid_generate_v4()", null: false
change_table :projects do |t|
t.remove :id
t.rename :uuid, :id
end
execute "ALTER TABLE projects ADD PRIMARY KEY (id);"
end
end