From e06f7d976374a6b6116e844c3343059e2a71ff6c Mon Sep 17 00:00:00 2001 From: Nicholas Griffin Date: Sun, 25 Aug 2024 22:01:35 +0100 Subject: [PATCH] feat: adding new columns and storing requests --- .../vectorize/migrations/0003_update_item.sql | 6 ++++++ apps/vectorize/package.json | 2 +- apps/vectorize/prisma/schema.prisma | 2 ++ apps/vectorize/src/handlers/queue.ts | 21 ++++++++++++++++++- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 apps/vectorize/migrations/0003_update_item.sql diff --git a/apps/vectorize/migrations/0003_update_item.sql b/apps/vectorize/migrations/0003_update_item.sql new file mode 100644 index 0000000..5f22b5c --- /dev/null +++ b/apps/vectorize/migrations/0003_update_item.sql @@ -0,0 +1,6 @@ +-- Update item with new text and metadata columns +ALTER TABLE "item" +ADD COLUMN "text" varchar(2024) NULL; + +ALTER TABLE "item" +ADD COLUMN "metadata" varchar(2024) NULL; \ No newline at end of file diff --git a/apps/vectorize/package.json b/apps/vectorize/package.json index 269bad6..a5c3a97 100644 --- a/apps/vectorize/package.json +++ b/apps/vectorize/package.json @@ -9,7 +9,7 @@ "wrangler": "wrangler", "db:init": "npx wrangler d1 migrations create llm-rss-vectorise-agent init", "db:migrate": "npx wrangler d1 migrations apply llm-rss-vectorise-agent", - "db:prisma:migrate": "npx prisma migrate diff --script --from-empty --to-schema-datamodel ./prisma/schema.prisma", + "db:prisma:migrate": "npx prisma migrate diff --script --from-schema-datamodel ./prisma/schema.prisma --to-migrations ./prisma/migrations", "db:prisma:generate": "npx prisma generate" }, "devDependencies": { diff --git a/apps/vectorize/prisma/schema.prisma b/apps/vectorize/prisma/schema.prisma index 126a592..858f07c 100644 --- a/apps/vectorize/prisma/schema.prisma +++ b/apps/vectorize/prisma/schema.prisma @@ -16,4 +16,6 @@ model item { createdAt DateTime @default(now()) updatedAt DateTime @updatedAt status String + text String? + metadata String? } \ No newline at end of file diff --git a/apps/vectorize/src/handlers/queue.ts b/apps/vectorize/src/handlers/queue.ts index 5a0ae8b..f6d4dac 100644 --- a/apps/vectorize/src/handlers/queue.ts +++ b/apps/vectorize/src/handlers/queue.ts @@ -126,7 +126,20 @@ async function processRSSMessage( id: entryId, data: { text: parsedString, metadata }, }); - await updateItemStatus(prisma, entryId, 'queued'); + await prisma.item.upsert({ + where: { id }, + update: { + status: 'queued', + text: parsedString, + metadata: JSON.stringify(metadata), + }, + create: { + id, + status: 'queued', + text: parsedString, + metadata: JSON.stringify(metadata), + }, + }); inserted.push({ id: entryId, status: 'queued' }); } @@ -157,6 +170,12 @@ async function processEntryMessage( return null; } + await prisma.item.upsert({ + where: { id }, + update: { status: 'queued' }, + create: { id, status: 'queued' }, + }); + let queryText = parsedString; // TODO: Make this work, getting error: "Protocol error (Runtime.callFunctionOn): Argument should belong to the same JavaScript world as target object" /* if (metadata.url && env.BROWSER) {