在mongodb宣布放弃之后,我们正在迁移到postgres,注意到ID仅仅是数字并且自动增加。
我尝试过:
- 使用生命周期钩子将默认ID设置为UUID - 无效
- 安装了bookshelf-uuid
有人知道如何实现吗? 我非常不希望我的帖子ID是自动增加的数字。
在mongodb宣布放弃之后,我们正在迁移到postgres,注意到ID仅仅是数字并且自动增加。
我尝试过:
有人知道如何实现吗? 我非常不希望我的帖子ID是自动增加的数字。
自增id和uuid通常是不同的概念。对于uuid作为主键,我们通常使用随机值。由于值范围巨大,重复几乎不可能。
您可以按照以下方式定义自动生成的uuid主键:
CREATE TABLE my_table (
id UUID DEFAULT MD5(RANDOM()::TEXT || CLOCK_TIMESTAMP()::TEXT)::UUID PRIMARY KEY,
… other column definitions …
);
pgcrypto扩展还提供了用于创建随机UUID的函数。
CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE TABLE my_table (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
… other column definitions …
);
在Postgres 13中,不再需要创建pgcrypto扩展来使用gen_random_uuid()
。