Rails:从UUID到ID

hca*_*ras 2 ruby migration postgresql ruby-on-rails ruby-on-rails-5

我已经创建了一个Order以UUID作为主键的模型。现在,我想将其更改回普通的增量整数。

我试过像这样进行迁移:

add_column :orders, :id, :primary_key
Run Code Online (Sandbox Code Playgroud)

但这显然不起作用,因为已经有一个id列。

我发现了很多关于如何从id到uuid的文章,但没有找到如何扭转它的文章。

Vij*_*wal 5

该表是否有数据?

如果否,则删除旧的id列并添加新的:

remove_column :orders, :id
add_column :orders, :id, :primary_key
Run Code Online (Sandbox Code Playgroud)

如果是,将id列重命名为id_deprecated

rename_column :orders, :id, :id_deprecated
add_column :orders, :id, :primary_key
Run Code Online (Sandbox Code Playgroud)

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