pref: change the database type to SQLite

This commit is contained in:
LIlGG
2025-09-25 15:24:13 +08:00
parent 1f4fb103e9
commit 530dfac665
16 changed files with 513 additions and 311 deletions

View File

@@ -1,6 +1,6 @@
-- CreateTable
CREATE TABLE "ChatUsage" (
"id" TEXT NOT NULL,
"id" TEXT NOT NULL PRIMARY KEY,
"userId" TEXT NOT NULL,
"chatId" TEXT NOT NULL,
"messageId" TEXT NOT NULL,
@@ -9,35 +9,31 @@ CREATE TABLE "ChatUsage" (
"cachedTokens" INTEGER NOT NULL DEFAULT 0,
"reasoningTokens" INTEGER NOT NULL DEFAULT 0,
"totalTokens" INTEGER NOT NULL DEFAULT 0,
"calledAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"calledAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"status" TEXT NOT NULL,
"modelName" TEXT,
"prompt" TEXT,
"metadata" JSONB,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "ChatUsage_pkey" PRIMARY KEY ("id")
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL
);
-- CreateTable
CREATE TABLE "Chat" (
"id" TEXT NOT NULL,
"id" TEXT NOT NULL PRIMARY KEY,
"urlId" TEXT,
"userId" TEXT NOT NULL,
"description" TEXT,
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"timestamp" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"version" INTEGER NOT NULL DEFAULT 1,
"metadata" JSONB,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Chat_pkey" PRIMARY KEY ("id")
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL
);
-- CreateTable
CREATE TABLE "Message" (
"id" TEXT NOT NULL,
"id" TEXT NOT NULL PRIMARY KEY,
"chatId" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"role" TEXT NOT NULL,
@@ -48,26 +44,24 @@ CREATE TABLE "Message" (
"metadata" JSONB,
"parts" JSONB,
"version" INTEGER NOT NULL DEFAULT 1,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Message_pkey" PRIMARY KEY ("id")
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL,
CONSTRAINT "Message_chatId_fkey" FOREIGN KEY ("chatId") REFERENCES "Chat" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "Page" (
"id" TEXT NOT NULL,
"id" TEXT NOT NULL PRIMARY KEY,
"messageId" TEXT NOT NULL,
"pages" JSONB NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Page_pkey" PRIMARY KEY ("id")
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL,
CONSTRAINT "Page_messageId_fkey" FOREIGN KEY ("messageId") REFERENCES "Message" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "Section" (
"id" TEXT NOT NULL,
"id" TEXT NOT NULL PRIMARY KEY,
"messageId" TEXT NOT NULL,
"type" TEXT NOT NULL DEFAULT 'section',
"action" TEXT NOT NULL DEFAULT 'add',
@@ -77,15 +71,14 @@ CREATE TABLE "Section" (
"domId" TEXT NOT NULL,
"rootDomId" TEXT,
"sort" INTEGER NOT NULL DEFAULT 0,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Section_pkey" PRIMARY KEY ("id")
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL,
CONSTRAINT "Section_messageId_fkey" FOREIGN KEY ("messageId") REFERENCES "Message" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "Deployment" (
"id" TEXT NOT NULL,
"id" TEXT NOT NULL PRIMARY KEY,
"userId" TEXT NOT NULL,
"chatId" TEXT NOT NULL,
"platform" TEXT NOT NULL,
@@ -93,24 +86,21 @@ CREATE TABLE "Deployment" (
"url" TEXT NOT NULL,
"status" TEXT NOT NULL,
"metadata" JSONB,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Deployment_pkey" PRIMARY KEY ("id")
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL,
CONSTRAINT "Deployment_chatId_fkey" FOREIGN KEY ("chatId") REFERENCES "Chat" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "UserSetting" (
"id" TEXT NOT NULL,
"id" TEXT NOT NULL PRIMARY KEY,
"userId" TEXT NOT NULL,
"category" TEXT NOT NULL,
"key" TEXT NOT NULL,
"value" TEXT NOT NULL,
"isSecret" BOOLEAN NOT NULL DEFAULT false,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "UserSetting_pkey" PRIMARY KEY ("id")
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL
);
-- CreateIndex
@@ -187,15 +177,3 @@ CREATE INDEX "UserSetting_isSecret_idx" ON "UserSetting"("isSecret");
-- CreateIndex
CREATE UNIQUE INDEX "UserSetting_userId_category_key_key" ON "UserSetting"("userId", "category", "key");
-- AddForeignKey
ALTER TABLE "Message" ADD CONSTRAINT "Message_chatId_fkey" FOREIGN KEY ("chatId") REFERENCES "Chat"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Page" ADD CONSTRAINT "Page_messageId_fkey" FOREIGN KEY ("messageId") REFERENCES "Message"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Section" ADD CONSTRAINT "Section_messageId_fkey" FOREIGN KEY ("messageId") REFERENCES "Message"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Deployment" ADD CONSTRAINT "Deployment_chatId_fkey" FOREIGN KEY ("chatId") REFERENCES "Chat"("id") ON DELETE CASCADE ON UPDATE CASCADE;

View File

@@ -1,3 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (e.g., Git)
provider = "postgresql"
provider = "sqlite"

View File

@@ -3,8 +3,8 @@ generator client {
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
provider = "sqlite"
url = "file:../data/upage.db"
}
// 聊天使用记录,每个 message 对应多条。
@@ -87,7 +87,7 @@ model Message {
// 'user' 或 'assistant'
role String
// 消息内容
content String @db.Text
content String
// 版本 ID
revisionId String?
// 注释
@@ -147,7 +147,7 @@ model Section {
// 页面名称
pageName String @default("")
// Section 内容 (HTML/CSS)
content String @db.Text
content String
// DOM ID
domId String
// 根 DOM ID用于标识父级容器
@@ -209,7 +209,7 @@ model UserSetting {
// 设置键名
key String
// 设置值
value String @db.Text
value String
// 是否为敏感信息(如 API 密钥)
isSecret Boolean @default(false)
// 创建时间