2017-08-24 50 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