3
我有一个Project
模型,它具有依赖项,并且数据库中已有记录。Rails-迁移表(使用数据)具有UUID而不是ID
我想更改Project.id
(它的主键)是一个UUID,而不是一个递增的整数。
我该如何编写一个将改变id的迁移,将现有记录更新为具有UUID,并在其他表的外键中更新其引用?
我有一个Project
模型,它具有依赖项,并且数据库中已有记录。Rails-迁移表(使用数据)具有UUID而不是ID
我想更改Project.id
(它的主键)是一个UUID,而不是一个递增的整数。
我该如何编写一个将改变id的迁移,将现有记录更新为具有UUID,并在其他表的外键中更新其引用?
从默认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
所有这种迁移首先没有扩展使用UUID;其次,这是不可逆转的;第三,当引用数据存在时它不能工作 – antiqe