mirror of https://github.com/ghostfolio/ghostfolio
Browse Source
Add 3 additive Prisma migrations for agent chat logging, feedback collection, and model ID tracking. Wrap demo portfolio seed data behind SEED_DEMO_DATA env guard.pull/6458/head
5 changed files with 346 additions and 4 deletions
@ -0,0 +1,26 @@ |
|||
-- CreateTable |
|||
CREATE TABLE "AgentChatLog" ( |
|||
"id" TEXT NOT NULL, |
|||
"requestId" TEXT NOT NULL, |
|||
"userId" TEXT NOT NULL, |
|||
"latencyMs" INTEGER NOT NULL, |
|||
"totalSteps" INTEGER NOT NULL, |
|||
"toolsUsed" TEXT[] DEFAULT ARRAY[]::TEXT[], |
|||
"promptTokens" INTEGER NOT NULL DEFAULT 0, |
|||
"completionTokens" INTEGER NOT NULL DEFAULT 0, |
|||
"totalTokens" INTEGER NOT NULL DEFAULT 0, |
|||
"errorOccurred" BOOLEAN NOT NULL DEFAULT false, |
|||
"errorMessage" TEXT, |
|||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|||
|
|||
CONSTRAINT "AgentChatLog_pkey" PRIMARY KEY ("id") |
|||
); |
|||
|
|||
-- CreateIndex |
|||
CREATE UNIQUE INDEX "AgentChatLog_requestId_key" ON "AgentChatLog"("requestId"); |
|||
|
|||
-- CreateIndex |
|||
CREATE INDEX "AgentChatLog_userId_idx" ON "AgentChatLog"("userId"); |
|||
|
|||
-- CreateIndex |
|||
CREATE INDEX "AgentChatLog_createdAt_idx" ON "AgentChatLog"("createdAt"); |
|||
@ -0,0 +1,24 @@ |
|||
-- AlterTable |
|||
ALTER TABLE "AgentChatLog" ADD COLUMN "verificationResult" JSONB, |
|||
ADD COLUMN "verificationScore" DOUBLE PRECISION; |
|||
|
|||
-- CreateTable |
|||
CREATE TABLE "AgentFeedback" ( |
|||
"id" TEXT NOT NULL, |
|||
"requestId" TEXT NOT NULL, |
|||
"userId" TEXT NOT NULL, |
|||
"rating" INTEGER NOT NULL, |
|||
"comment" TEXT, |
|||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, |
|||
|
|||
CONSTRAINT "AgentFeedback_pkey" PRIMARY KEY ("id") |
|||
); |
|||
|
|||
-- CreateIndex |
|||
CREATE INDEX "AgentFeedback_createdAt_idx" ON "AgentFeedback"("createdAt"); |
|||
|
|||
-- CreateIndex |
|||
CREATE UNIQUE INDEX "AgentFeedback_requestId_userId_key" ON "AgentFeedback"("requestId", "userId"); |
|||
|
|||
-- AddForeignKey |
|||
ALTER TABLE "AgentFeedback" ADD CONSTRAINT "AgentFeedback_requestId_fkey" FOREIGN KEY ("requestId") REFERENCES "AgentChatLog"("requestId") ON DELETE RESTRICT ON UPDATE CASCADE; |
|||
@ -0,0 +1,21 @@ |
|||
-- AddColumn: modelId to AgentChatLog |
|||
ALTER TABLE "AgentChatLog" ADD COLUMN "modelId" TEXT; |
|||
|
|||
-- ============================================================ |
|||
-- Fix non-UUID SymbolProfile IDs (sp-* → proper UUIDs) |
|||
-- All FK constraints use ON UPDATE CASCADE, so Order.symbolProfileId |
|||
-- and other references update automatically. |
|||
-- ============================================================ |
|||
UPDATE "SymbolProfile" SET "id" = 'd8f0b8c3-212c-48ef-a837-fff75ef98176' WHERE "id" = 'sp-aapl'; |
|||
UPDATE "SymbolProfile" SET "id" = '5bb696ab-aaf3-4924-a0e4-79c69bfcd81b' WHERE "id" = 'sp-msft'; |
|||
UPDATE "SymbolProfile" SET "id" = '7df6544c-c592-459c-af69-aafe65db60c9' WHERE "id" = 'sp-voo'; |
|||
UPDATE "SymbolProfile" SET "id" = 'ba75d50e-34f6-4c9e-bbb7-71b43b7cbfc0' WHERE "id" = 'sp-googl'; |
|||
UPDATE "SymbolProfile" SET "id" = '8b846370-2e16-4594-9785-a94da15d60a1' WHERE "id" = 'sp-btc'; |
|||
|
|||
-- ============================================================ |
|||
-- Delete test user with non-RFC4122 UUID (aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee) |
|||
-- All FK constraints use ON DELETE CASCADE, so their orders (ord-*), |
|||
-- account (11111111-2222-3333-4444-555555555555), etc. are cleaned up automatically. |
|||
-- The seed will recreate the demo user with proper UUIDs on next run. |
|||
-- ============================================================ |
|||
DELETE FROM "User" WHERE "id" = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'; |
|||
Loading…
Reference in new issue