【问题标题】:How to Generate UUID while creating record through Adonis Lucid ORM model?如何在通过 Adonis Lucid ORM 模型创建记录时生成 UUID?
【发布时间】:2019-03-29 07:13:46
【问题描述】:

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());

我正在使用带有 Adonis 节点框架的 PostgresSQL,我有一个名为 api_logs 的表,其架构如下:

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”列中的空值违反非空约束

提前致谢!!!

最好的。

【问题讨论】:

  • 请包括异常消息、详细信息、提示和上下文。

标签: javascript node.js postgresql uuid adonis.js


【解决方案1】:

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

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

运行时更改表以添加 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 '';

为我工作,希望这对每个人都有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多