函数 uuid_generate_v4() 不存在 postgres 11

Roc*_*ckr 8 postgresql postgresql-11

我正在尝试使用node-pg-migrate和运行迁移来在我的节点项目中创建表。当我运行迁移时,我得到函数 uuid_generate_v4() 不存在。

我确实检查了我的扩展并且 uuid-ossp 可用。

extname  | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition 
-----------+----------+--------------+----------------+------------+-----------+--------------
 plpgsql   |       10 |           11 | f              | 1.0        |           | 
 uuid-ossp |    16384 |         2200 | t              | 1.1        |           | 
(2 rows)

Run Code Online (Sandbox Code Playgroud)

我希望我的迁移能够运行,但它失败了。我在 Mac 上使用 Postgres 11。从这里安装 Postgres - https://postgresapp.com/

小智 11

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Run Code Online (Sandbox Code Playgroud)


Shi*_*ami 1

不幸的是,我没有太多关于 pg-migrate 文件的信息,但您必须指定以下内容:

pgm.createExtension('uuid-ossp', { ifNotExists: true });
// and
pgm.createTable('my_table', {
    id: { type: 'uuid', primaryKey: true, default: new PgLiteral('gen_random_uuid()') },
    // ...

Run Code Online (Sandbox Code Playgroud)