2017-08-24 54 views
0

我创建了一个以UUID作为主键的Order。 现在,我想将其更改回正常的增量整数。Rails:从UUID到ID

我试图运行像迁移:

add_column :orders, :id, :primary_key 

但它显然是行不通的,因为已经有一个id列。

我发现了很多关于如何从id到uuid的帖子,但没有找到如何反转它。

回答

2

表格是否有数据?

如果没有,只是删除旧id列,并添加新:

remove_column :orders, :id 
add_column :orders, :id, :primary_key 

如果是的话,重命名idid_deprecated

rename_column :orders, :id, :id_deprecated 
add_column :orders, :id, :primary_key 

,并添加您的逻辑来处理其他表的old_id引用。

+0

如果还有其他协会,这可能是微不足道的。您需要一个来自UUID - > ID的映射表,然后需要更新* everything *。 – tadman

+0

不需要有另一张地图表,'id_deprecated'' <->'id'将在'orders'中可用,然后它只是'join'和更新其他表的问题 –

+0

如果您已经丢弃了原始UUID值主表。你将如何匹配其他记录? – tadman