如何在通过 Adonis Lucid ORM 模型创建记录时生成 UUID?

How to Generate UUID while creating record through Adonis Lucid ORM model?

TL;DR

我想要 Lucid ORM 替代以下 PGSQL 查询

INSERT INTO "api_logs" ("request_id", "request_url", "request_method", "request_data", "response_data", "remark", "created_at", "updated_at")
VALUES (uuid_generate_v4(), NULL, 'POST', '{
    "test": "success"
}', '{
    "test": "success"
}', 'test', now(), now());

我将 PostgresSQL 与 Adonis Node Framework 一起使用,我有一个名为 api_logs 的 table,具有以下架构:

id  integer Auto Increment [nextval('api_request_logs_id_seq')] 
request_id  uuid    
request_url character varying(255) NULL 
request_method  character varying(255) NULL [POST]  
request_data    json NULL   
response_data   json NULL   
created_at  timestamptz NULL    
updated_at  timestamptz NULL

我正在尝试使用 Adonis Lucid ORM 创建记录,但它返回异常。

尝试失败次数:

await ApiRequestLog.create({
  request_id : uuid.v4(),
  request_url : request.url(),
  request_method : request.method(),
  request_data : request.all(),
  response_data : response_data,
  remark : 'Test Request with success response'
});

错误: 未定义 uuid

await ApiRequestLog.create({
  request_url : request.url(),
  request_method : request.method(),
  request_data : request.all(),
  response_data : response_data,
  remark : 'Test Request with success response'
});

错误:

列 "request_id" 中的空值违反了非空约束

提前致谢!!!

最佳。

绞尽脑汁,用Adonis JS找不到解决办法,但我通过在PostgresQL中进行更改找到了方法。

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

改变 Table 添加 UUID 而 运行

ALTER "request_id" TYPE uuid,
ALTER "request_id" SET DEFAULT uuid_generate_v4(),
ALTER "request_id" SET NOT NULL;
COMMENT ON COLUMN "api_logs"."request_id" IS '';
COMMENT ON TABLE "api_logs" IS '';

对我有用,希望这对每个人都有用。