1
1
mirror of https://github.com/ZeroCatDev/ClassworksKV.git synced 2026-03-05 05:03:10 +00:00

fix: remove outdated migration files and update schema for consistency

This commit is contained in:
Sunwuyuan 2026-02-09 11:26:09 +08:00
parent 9c8da8091c
commit 3d6679a7c2
No known key found for this signature in database
GPG Key ID: A6A54CF66F56BB64
6 changed files with 108 additions and 141 deletions

View File

@ -20,7 +20,7 @@ const config: runtime.GetPrismaClientConfig = {
"clientVersion": "7.3.0",
"engineVersion": "9d6ad21cbbceab97458517b147a6a09ff43aa735",
"activeProvider": "postgresql",
"inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n}\n\nmodel Account {\n id String @id(map: \"idx_18303_PRIMARY\") @default(cuid()) @db.VarChar(191)\n provider String @db.VarChar(191)\n providerId String @db.VarChar(191)\n email String? @db.VarChar(191)\n name String? @db.VarChar(191)\n avatarUrl String? @db.VarChar(191)\n providerData Json? @db.Json\n accessToken String?\n createdAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n refreshToken String?\n refreshTokenExpiry DateTime? @db.Timestamptz(6)\n tokenVersion Int @default(1)\n\n devices Device[]\n\n @@unique([provider, providerId], map: \"idx_18303_Account_provider_providerId_key\")\n}\n\nmodel AppInstall {\n id String @id(map: \"idx_18310_PRIMARY\") @default(cuid()) @db.VarChar(191)\n deviceId Int\n appId String @db.VarChar(191)\n token String @unique(map: \"idx_18310_AppInstall_token_key\") @db.VarChar(191)\n note String? @db.VarChar(191)\n installedAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n deviceType String? @db.VarChar(191)\n isReadOnly Boolean @default(false)\n\n device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)\n\n @@index([deviceId], map: \"idx_18310_AppInstall_deviceId_fkey\")\n}\n\nmodel AutoAuth {\n id String @id(map: \"idx_18317_PRIMARY\") @default(cuid()) @db.VarChar(191)\n deviceId Int\n password String? @db.VarChar(191)\n deviceType String? @db.VarChar(191)\n isReadOnly Boolean @default(false)\n createdAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n\n device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)\n\n @@unique([deviceId, password], map: \"idx_18317_AutoAuth_deviceId_password_key\")\n}\n\nmodel Device {\n id Int @id(map: \"idx_18324_PRIMARY\") @default(autoincrement())\n uuid String @unique(map: \"idx_18324_Device_uuid_key\") @db.VarChar(191)\n name String? @db.VarChar(191)\n accountId String? @db.VarChar(191)\n createdAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n password String? @db.VarChar(191)\n passwordHint String? @db.VarChar(191)\n namespace String? @unique(map: \"idx_18324_Device_namespace_key\") @db.VarChar(191)\n\n // 关联关系\n account Account? @relation(fields: [accountId], references: [id], onDelete: SetNull)\n appInstalls AppInstall[]\n kvStore KVStore[] // 设备相关的KV存储\n autoAuths AutoAuth[] // 自动授权配置\n\n @@index([accountId], map: \"idx_18324_Device_accountId_fkey\")\n}\n\nmodel KVStore {\n deviceId Int\n key String @db.VarChar(191)\n value Json @db.Json\n creatorIp String? @default(\"\") @db.VarChar(191)\n createdAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n\n device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)\n\n @@id([deviceId, key], map: \"idx_18330_PRIMARY\")\n}\n",
"inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../generated/prisma\"\n}\n\ndatasource db {\n provider = \"postgresql\"\n relationMode = \"prisma\"\n}\n\nmodel Account {\n id String @id @default(cuid()) @db.VarChar(191)\n provider String @db.VarChar(191)\n providerId String @db.VarChar(191)\n email String? @db.VarChar(191)\n name String? @db.VarChar(191)\n avatarUrl String? @db.VarChar(191)\n providerData Json? @db.Json\n accessToken String?\n createdAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n refreshToken String?\n refreshTokenExpiry DateTime? @db.Timestamptz(6)\n tokenVersion Int @default(1)\n\n devices Device[]\n\n @@unique([provider, providerId])\n}\n\nmodel AppInstall {\n id String @id @default(cuid()) @db.VarChar(191)\n deviceId Int\n appId String @db.VarChar(191)\n token String @unique @db.VarChar(191)\n note String? @db.VarChar(191)\n installedAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n deviceType String? @db.VarChar(191)\n isReadOnly Boolean @default(false)\n\n device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)\n\n @@index([deviceId])\n}\n\nmodel AutoAuth {\n id String @id @default(cuid()) @db.VarChar(191)\n deviceId Int\n password String? @db.VarChar(191)\n deviceType String? @db.VarChar(191)\n isReadOnly Boolean @default(false)\n createdAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n\n device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)\n\n @@unique([deviceId, password])\n}\n\nmodel Device {\n id Int @id @default(autoincrement())\n uuid String @unique @db.VarChar(191)\n name String? @db.VarChar(191)\n accountId String? @db.VarChar(191)\n createdAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n password String? @db.VarChar(191)\n passwordHint String? @db.VarChar(191)\n namespace String? @unique @db.VarChar(191)\n\n // 关联关系\n account Account? @relation(fields: [accountId], references: [id], onDelete: SetNull)\n appInstalls AppInstall[]\n kvStore KVStore[] // 设备相关的KV存储\n autoAuths AutoAuth[] // 自动授权配置\n\n @@index([accountId])\n}\n\nmodel KVStore {\n deviceId Int\n key String @db.VarChar(191)\n value Json @db.Json\n creatorIp String? @default(\"\") @db.VarChar(191)\n createdAt DateTime @default(now()) @db.Timestamptz(6)\n updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)\n\n device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)\n\n @@id([deviceId, key])\n}\n",
"runtimeDataModel": {
"models": {},
"enums": {},

View File

@ -1,110 +0,0 @@
-- CreateSchema
CREATE SCHEMA IF NOT EXISTS "public";
-- CreateTable
CREATE TABLE "Account" (
"id" VARCHAR(191) NOT NULL,
"provider" VARCHAR(191) NOT NULL,
"providerId" VARCHAR(191) NOT NULL,
"email" VARCHAR(191),
"name" VARCHAR(191),
"avatarUrl" VARCHAR(191),
"providerData" JSON,
"accessToken" TEXT,
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL,
"refreshToken" TEXT,
"refreshTokenExpiry" TIMESTAMPTZ(6),
"tokenVersion" INTEGER NOT NULL DEFAULT 1,
CONSTRAINT "idx_18303_PRIMARY" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "AppInstall" (
"id" VARCHAR(191) NOT NULL,
"deviceId" INTEGER NOT NULL,
"appId" VARCHAR(191) NOT NULL,
"token" VARCHAR(191) NOT NULL,
"note" VARCHAR(191),
"installedAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL,
"deviceType" VARCHAR(191),
"isReadOnly" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "idx_18310_PRIMARY" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "AutoAuth" (
"id" VARCHAR(191) NOT NULL,
"deviceId" INTEGER NOT NULL,
"password" VARCHAR(191),
"deviceType" VARCHAR(191),
"isReadOnly" BOOLEAN NOT NULL DEFAULT false,
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL,
CONSTRAINT "idx_18317_PRIMARY" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Device" (
"id" INTEGER NOT NULL,
"uuid" VARCHAR(191) NOT NULL,
"name" VARCHAR(191),
"accountId" VARCHAR(191),
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL,
"password" VARCHAR(191),
"passwordHint" VARCHAR(191),
"namespace" VARCHAR(191),
CONSTRAINT "idx_18324_PRIMARY" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "KVStore" (
"deviceId" INTEGER NOT NULL,
"key" VARCHAR(191) NOT NULL,
"value" JSON NOT NULL,
"creatorIp" VARCHAR(191) DEFAULT '',
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL,
CONSTRAINT "idx_18330_PRIMARY" PRIMARY KEY ("deviceId","key")
);
-- CreateIndex
CREATE UNIQUE INDEX "idx_18303_Account_provider_providerId_key" ON "Account"("provider", "providerId");
-- CreateIndex
CREATE UNIQUE INDEX "idx_18310_AppInstall_token_key" ON "AppInstall"("token");
-- CreateIndex
CREATE INDEX "idx_18310_AppInstall_deviceId_fkey" ON "AppInstall"("deviceId");
-- CreateIndex
CREATE UNIQUE INDEX "idx_18317_AutoAuth_deviceId_password_key" ON "AutoAuth"("deviceId", "password");
-- CreateIndex
CREATE UNIQUE INDEX "idx_18324_Device_uuid_key" ON "Device"("uuid");
-- CreateIndex
CREATE UNIQUE INDEX "idx_18324_Device_namespace_key" ON "Device"("namespace");
-- CreateIndex
CREATE INDEX "idx_18324_Device_accountId_fkey" ON "Device"("accountId");
-- AddForeignKey
ALTER TABLE "AppInstall" ADD CONSTRAINT "AppInstall_deviceId_fkey" FOREIGN KEY ("deviceId") REFERENCES "Device"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "AutoAuth" ADD CONSTRAINT "AutoAuth_deviceId_fkey" FOREIGN KEY ("deviceId") REFERENCES "Device"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "Device" ADD CONSTRAINT "Device_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "Account"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "KVStore" ADD CONSTRAINT "KVStore_deviceId_fkey" FOREIGN KEY ("deviceId") REFERENCES "Device"("id") ON DELETE CASCADE ON UPDATE CASCADE;

View File

@ -1,14 +0,0 @@
-- AlterTable
ALTER TABLE "Account" ALTER COLUMN "updatedAt" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "AppInstall" ALTER COLUMN "updatedAt" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "AutoAuth" ALTER COLUMN "updatedAt" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "Device" ALTER COLUMN "updatedAt" SET DEFAULT CURRENT_TIMESTAMP;
-- AlterTable
ALTER TABLE "KVStore" ALTER COLUMN "updatedAt" SET DEFAULT CURRENT_TIMESTAMP;

View File

@ -1,4 +0,0 @@
-- AlterTable
CREATE SEQUENCE device_id_seq;
ALTER TABLE "Device" ALTER COLUMN "id" SET DEFAULT nextval('device_id_seq');
ALTER SEQUENCE device_id_seq OWNED BY "Device"."id";

View File

@ -0,0 +1,94 @@
-- CreateTable
CREATE TABLE "Account" (
"id" VARCHAR(191) NOT NULL,
"provider" VARCHAR(191) NOT NULL,
"providerId" VARCHAR(191) NOT NULL,
"email" VARCHAR(191),
"name" VARCHAR(191),
"avatarUrl" VARCHAR(191),
"providerData" JSON,
"accessToken" TEXT,
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"refreshToken" TEXT,
"refreshTokenExpiry" TIMESTAMPTZ(6),
"tokenVersion" INTEGER NOT NULL DEFAULT 1,
CONSTRAINT "Account_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "AppInstall" (
"id" VARCHAR(191) NOT NULL,
"deviceId" INTEGER NOT NULL,
"appId" VARCHAR(191) NOT NULL,
"token" VARCHAR(191) NOT NULL,
"note" VARCHAR(191),
"installedAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"deviceType" VARCHAR(191),
"isReadOnly" BOOLEAN NOT NULL DEFAULT false,
CONSTRAINT "AppInstall_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "AutoAuth" (
"id" VARCHAR(191) NOT NULL,
"deviceId" INTEGER NOT NULL,
"password" VARCHAR(191),
"deviceType" VARCHAR(191),
"isReadOnly" BOOLEAN NOT NULL DEFAULT false,
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "AutoAuth_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "Device" (
"id" SERIAL NOT NULL,
"uuid" VARCHAR(191) NOT NULL,
"name" VARCHAR(191),
"accountId" VARCHAR(191),
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"password" VARCHAR(191),
"passwordHint" VARCHAR(191),
"namespace" VARCHAR(191),
CONSTRAINT "Device_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "KVStore" (
"deviceId" INTEGER NOT NULL,
"key" VARCHAR(191) NOT NULL,
"value" JSON NOT NULL,
"creatorIp" VARCHAR(191) DEFAULT '',
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "KVStore_pkey" PRIMARY KEY ("deviceId","key")
);
-- CreateIndex
CREATE UNIQUE INDEX "Account_provider_providerId_key" ON "Account"("provider", "providerId");
-- CreateIndex
CREATE UNIQUE INDEX "AppInstall_token_key" ON "AppInstall"("token");
-- CreateIndex
CREATE INDEX "AppInstall_deviceId_idx" ON "AppInstall"("deviceId");
-- CreateIndex
CREATE UNIQUE INDEX "AutoAuth_deviceId_password_key" ON "AutoAuth"("deviceId", "password");
-- CreateIndex
CREATE UNIQUE INDEX "Device_uuid_key" ON "Device"("uuid");
-- CreateIndex
CREATE UNIQUE INDEX "Device_namespace_key" ON "Device"("namespace");
-- CreateIndex
CREATE INDEX "Device_accountId_idx" ON "Device"("accountId");

View File

@ -5,10 +5,11 @@ generator client {
datasource db {
provider = "postgresql"
relationMode = "prisma"
}
model Account {
id String @id(map: "idx_18303_PRIMARY") @db.VarChar(191) @default(cuid())
id String @id @db.VarChar(191) @default(cuid())
provider String @db.VarChar(191)
providerId String @db.VarChar(191)
email String? @db.VarChar(191)
@ -24,14 +25,14 @@ model Account {
devices Device[]
@@unique([provider, providerId], map: "idx_18303_Account_provider_providerId_key")
@@unique([provider, providerId])
}
model AppInstall {
id String @id(map: "idx_18310_PRIMARY") @default(cuid()) @db.VarChar(191)
id String @id @default(cuid()) @db.VarChar(191)
deviceId Int
appId String @db.VarChar(191)
token String @unique(map: "idx_18310_AppInstall_token_key") @db.VarChar(191)
token String @unique @db.VarChar(191)
note String? @db.VarChar(191)
installedAt DateTime @default(now()) @db.Timestamptz(6)
updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)
@ -40,11 +41,11 @@ model AppInstall {
device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)
@@index([deviceId], map: "idx_18310_AppInstall_deviceId_fkey")
@@index([deviceId])
}
model AutoAuth {
id String @id(map: "idx_18317_PRIMARY") @default(cuid()) @db.VarChar(191)
id String @id @default(cuid()) @db.VarChar(191)
deviceId Int
password String? @db.VarChar(191)
deviceType String? @db.VarChar(191)
@ -54,26 +55,26 @@ model AutoAuth {
device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)
@@unique([deviceId, password], map: "idx_18317_AutoAuth_deviceId_password_key")
@@unique([deviceId, password])
}
model Device {
id Int @id(map: "idx_18324_PRIMARY") @default(autoincrement())
uuid String @unique(map: "idx_18324_Device_uuid_key") @db.VarChar(191)
id Int @id @default(autoincrement())
uuid String @unique @db.VarChar(191)
name String? @db.VarChar(191)
accountId String? @db.VarChar(191)
createdAt DateTime @default(now()) @db.Timestamptz(6)
updatedAt DateTime @default(now()) @updatedAt @db.Timestamptz(6)
password String? @db.VarChar(191)
passwordHint String? @db.VarChar(191)
namespace String? @unique(map: "idx_18324_Device_namespace_key") @db.VarChar(191)
namespace String? @unique @db.VarChar(191)
// 关联关系
account Account? @relation(fields: [accountId], references: [id], onDelete: SetNull)
appInstalls AppInstall[]
kvStore KVStore[] // 设备相关的KV存储
autoAuths AutoAuth[] // 自动授权配置
@@index([accountId], map: "idx_18324_Device_accountId_fkey")
@@index([accountId])
}
model KVStore {
@ -86,5 +87,5 @@ model KVStore {
device Device @relation(fields: [deviceId], references: [id], onDelete: Cascade)
@@id([deviceId, key], map: "idx_18330_PRIMARY")
@@id([deviceId, key])
}