Как сгенерировать UUID при создании записи с помощью модели Adonis Lucid ORM?
TL;DR
Я хочу, чтобы Lucid ORM был альтернативой следующему PGSQL Query
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
со следующей схемой:
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" нарушает ограничение not-null
Заранее спасибо!!!
Лучший.
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 '';
Работал для меня, надеюсь, это будет работать для всех.