fix: consolidate migrations and fix Prisma ESM compatibility
- Replace 3 partial migrations with single init migration from schema - Fixes missing backupEnabled, integrationType, and other columns - Move @prisma/client to dependencies for adapter-node externalization - Add ssr.external to prevent Vite bundling Prisma (fixes __dirname error)
This commit is contained in:
@@ -1,187 +0,0 @@
|
|||||||
-- CreateTable
|
|
||||||
CREATE TABLE "User" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"email" TEXT NOT NULL,
|
|
||||||
"password" TEXT,
|
|
||||||
"displayName" TEXT NOT NULL,
|
|
||||||
"avatarUrl" TEXT,
|
|
||||||
"authProvider" TEXT NOT NULL DEFAULT 'local',
|
|
||||||
"role" TEXT NOT NULL DEFAULT 'user',
|
|
||||||
"refreshToken" TEXT,
|
|
||||||
"refreshTokenExpiresAt" DATETIME,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "Group" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"name" TEXT NOT NULL,
|
|
||||||
"description" TEXT,
|
|
||||||
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "UserGroup" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"userId" TEXT NOT NULL,
|
|
||||||
"groupId" TEXT NOT NULL,
|
|
||||||
CONSTRAINT "UserGroup_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT "UserGroup_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "Group" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "App" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"name" TEXT NOT NULL,
|
|
||||||
"url" TEXT NOT NULL,
|
|
||||||
"icon" TEXT,
|
|
||||||
"iconType" TEXT NOT NULL DEFAULT 'lucide',
|
|
||||||
"description" TEXT,
|
|
||||||
"category" TEXT,
|
|
||||||
"tags" TEXT NOT NULL DEFAULT '',
|
|
||||||
"healthcheckEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
||||||
"healthcheckInterval" INTEGER NOT NULL DEFAULT 300,
|
|
||||||
"healthcheckMethod" TEXT NOT NULL DEFAULT 'GET',
|
|
||||||
"healthcheckExpectedStatus" INTEGER NOT NULL DEFAULT 200,
|
|
||||||
"healthcheckTimeout" INTEGER NOT NULL DEFAULT 5000,
|
|
||||||
"createdById" TEXT,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL,
|
|
||||||
CONSTRAINT "App_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "AppStatus" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"appId" TEXT NOT NULL,
|
|
||||||
"status" TEXT NOT NULL DEFAULT 'unknown',
|
|
||||||
"responseTime" INTEGER,
|
|
||||||
"checkedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
CONSTRAINT "AppStatus_appId_fkey" FOREIGN KEY ("appId") REFERENCES "App" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "Board" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"name" TEXT NOT NULL,
|
|
||||||
"icon" TEXT,
|
|
||||||
"description" TEXT,
|
|
||||||
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
|
||||||
"isGuestAccessible" BOOLEAN NOT NULL DEFAULT false,
|
|
||||||
"backgroundConfig" TEXT,
|
|
||||||
"createdById" TEXT,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL,
|
|
||||||
CONSTRAINT "Board_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "Section" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"boardId" TEXT NOT NULL,
|
|
||||||
"title" TEXT NOT NULL,
|
|
||||||
"icon" TEXT,
|
|
||||||
"order" INTEGER NOT NULL DEFAULT 0,
|
|
||||||
"isExpandedByDefault" BOOLEAN NOT NULL DEFAULT true,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL,
|
|
||||||
CONSTRAINT "Section_boardId_fkey" FOREIGN KEY ("boardId") REFERENCES "Board" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "Widget" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"sectionId" TEXT NOT NULL,
|
|
||||||
"type" TEXT NOT NULL,
|
|
||||||
"order" INTEGER NOT NULL DEFAULT 0,
|
|
||||||
"config" TEXT NOT NULL DEFAULT '{}',
|
|
||||||
"appId" TEXT,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL,
|
|
||||||
CONSTRAINT "Widget_sectionId_fkey" FOREIGN KEY ("sectionId") REFERENCES "Section" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
||||||
CONSTRAINT "Widget_appId_fkey" FOREIGN KEY ("appId") REFERENCES "App" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "Permission" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"entityType" TEXT NOT NULL,
|
|
||||||
"entityId" TEXT NOT NULL,
|
|
||||||
"targetType" TEXT NOT NULL,
|
|
||||||
"targetId" TEXT NOT NULL,
|
|
||||||
"level" TEXT NOT NULL,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateTable
|
|
||||||
CREATE TABLE "SystemSettings" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY DEFAULT 'singleton',
|
|
||||||
"authMode" TEXT NOT NULL DEFAULT 'local',
|
|
||||||
"registrationEnabled" BOOLEAN NOT NULL DEFAULT true,
|
|
||||||
"oauthClientId" TEXT,
|
|
||||||
"oauthClientSecret" TEXT,
|
|
||||||
"oauthDiscoveryUrl" TEXT,
|
|
||||||
"defaultTheme" TEXT NOT NULL DEFAULT 'dark',
|
|
||||||
"defaultPrimaryColor" TEXT NOT NULL DEFAULT '#6366f1',
|
|
||||||
"healthcheckDefaults" TEXT NOT NULL DEFAULT '{}',
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "User_email_idx" ON "User"("email");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE UNIQUE INDEX "Group_name_key" ON "Group"("name");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "UserGroup_userId_idx" ON "UserGroup"("userId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "UserGroup_groupId_idx" ON "UserGroup"("groupId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE UNIQUE INDEX "UserGroup_userId_groupId_key" ON "UserGroup"("userId", "groupId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "App_name_idx" ON "App"("name");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "App_category_idx" ON "App"("category");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "App_createdById_idx" ON "App"("createdById");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "AppStatus_appId_idx" ON "AppStatus"("appId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "AppStatus_checkedAt_idx" ON "AppStatus"("checkedAt");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "Board_createdById_idx" ON "Board"("createdById");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "Section_boardId_idx" ON "Section"("boardId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "Widget_sectionId_idx" ON "Widget"("sectionId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "Widget_appId_idx" ON "Widget"("appId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "Permission_entityType_entityId_idx" ON "Permission"("entityType", "entityId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE INDEX "Permission_targetType_targetId_idx" ON "Permission"("targetType", "targetId");
|
|
||||||
|
|
||||||
-- CreateIndex
|
|
||||||
CREATE UNIQUE INDEX "Permission_entityType_entityId_targetType_targetId_key" ON "Permission"("entityType", "entityId", "targetType", "targetId");
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
-- AlterTable
|
|
||||||
ALTER TABLE "User" ADD COLUMN "backgroundType" TEXT;
|
|
||||||
ALTER TABLE "User" ADD COLUMN "locale" TEXT;
|
|
||||||
ALTER TABLE "User" ADD COLUMN "primaryHue" INTEGER;
|
|
||||||
ALTER TABLE "User" ADD COLUMN "primarySaturation" INTEGER;
|
|
||||||
ALTER TABLE "User" ADD COLUMN "themeMode" TEXT;
|
|
||||||
+208
-57
@@ -1,15 +1,160 @@
|
|||||||
-- AlterTable
|
-- CreateTable
|
||||||
ALTER TABLE "Board" ADD COLUMN "backgroundType" TEXT;
|
CREATE TABLE "User" (
|
||||||
ALTER TABLE "Board" ADD COLUMN "cardSize" TEXT;
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
ALTER TABLE "Board" ADD COLUMN "customCss" TEXT;
|
"email" TEXT NOT NULL,
|
||||||
ALTER TABLE "Board" ADD COLUMN "themeHue" INTEGER;
|
"password" TEXT,
|
||||||
ALTER TABLE "Board" ADD COLUMN "themeSaturation" INTEGER;
|
"displayName" TEXT NOT NULL,
|
||||||
ALTER TABLE "Board" ADD COLUMN "wallpaperBlur" INTEGER;
|
"avatarUrl" TEXT,
|
||||||
ALTER TABLE "Board" ADD COLUMN "wallpaperOverlay" REAL;
|
"authProvider" TEXT NOT NULL DEFAULT 'local',
|
||||||
ALTER TABLE "Board" ADD COLUMN "wallpaperUrl" TEXT;
|
"role" TEXT NOT NULL DEFAULT 'user',
|
||||||
|
"refreshToken" TEXT,
|
||||||
|
"refreshTokenExpiresAt" DATETIME,
|
||||||
|
"onboardingComplete" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"trackRecentApps" BOOLEAN NOT NULL DEFAULT true,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL,
|
||||||
|
"themeMode" TEXT,
|
||||||
|
"primaryHue" INTEGER,
|
||||||
|
"primarySaturation" INTEGER,
|
||||||
|
"backgroundType" TEXT,
|
||||||
|
"locale" TEXT
|
||||||
|
);
|
||||||
|
|
||||||
-- AlterTable
|
-- CreateTable
|
||||||
ALTER TABLE "Section" ADD COLUMN "cardSize" TEXT;
|
CREATE TABLE "Group" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"name" TEXT NOT NULL,
|
||||||
|
"description" TEXT,
|
||||||
|
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "UserGroup" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"userId" TEXT NOT NULL,
|
||||||
|
"groupId" TEXT NOT NULL,
|
||||||
|
CONSTRAINT "UserGroup_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT "UserGroup_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "Group" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "App" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"name" TEXT NOT NULL,
|
||||||
|
"url" TEXT NOT NULL,
|
||||||
|
"icon" TEXT,
|
||||||
|
"iconType" TEXT NOT NULL DEFAULT 'lucide',
|
||||||
|
"description" TEXT,
|
||||||
|
"category" TEXT,
|
||||||
|
"tags" TEXT NOT NULL DEFAULT '',
|
||||||
|
"healthcheckEnabled" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"healthcheckInterval" INTEGER NOT NULL DEFAULT 300,
|
||||||
|
"healthcheckMethod" TEXT NOT NULL DEFAULT 'GET',
|
||||||
|
"healthcheckExpectedStatus" INTEGER NOT NULL DEFAULT 200,
|
||||||
|
"healthcheckTimeout" INTEGER NOT NULL DEFAULT 5000,
|
||||||
|
"integrationType" TEXT,
|
||||||
|
"integrationConfig" TEXT,
|
||||||
|
"integrationEnabled" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"createdById" TEXT,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL,
|
||||||
|
CONSTRAINT "App_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "AppStatus" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"appId" TEXT NOT NULL,
|
||||||
|
"status" TEXT NOT NULL DEFAULT 'unknown',
|
||||||
|
"responseTime" INTEGER,
|
||||||
|
"checkedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT "AppStatus_appId_fkey" FOREIGN KEY ("appId") REFERENCES "App" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Board" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"name" TEXT NOT NULL,
|
||||||
|
"icon" TEXT,
|
||||||
|
"description" TEXT,
|
||||||
|
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"isGuestAccessible" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"backgroundConfig" TEXT,
|
||||||
|
"themeHue" INTEGER,
|
||||||
|
"themeSaturation" INTEGER,
|
||||||
|
"backgroundType" TEXT,
|
||||||
|
"cardSize" TEXT,
|
||||||
|
"wallpaperUrl" TEXT,
|
||||||
|
"wallpaperBlur" INTEGER,
|
||||||
|
"wallpaperOverlay" REAL,
|
||||||
|
"customCss" TEXT,
|
||||||
|
"createdById" TEXT,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL,
|
||||||
|
CONSTRAINT "Board_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Section" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"boardId" TEXT NOT NULL,
|
||||||
|
"title" TEXT NOT NULL,
|
||||||
|
"icon" TEXT,
|
||||||
|
"order" INTEGER NOT NULL DEFAULT 0,
|
||||||
|
"isExpandedByDefault" BOOLEAN NOT NULL DEFAULT true,
|
||||||
|
"cardSize" TEXT,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL,
|
||||||
|
CONSTRAINT "Section_boardId_fkey" FOREIGN KEY ("boardId") REFERENCES "Board" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Widget" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"sectionId" TEXT NOT NULL,
|
||||||
|
"type" TEXT NOT NULL,
|
||||||
|
"order" INTEGER NOT NULL DEFAULT 0,
|
||||||
|
"config" TEXT NOT NULL DEFAULT '{}',
|
||||||
|
"appId" TEXT,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL,
|
||||||
|
CONSTRAINT "Widget_sectionId_fkey" FOREIGN KEY ("sectionId") REFERENCES "Section" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
CONSTRAINT "Widget_appId_fkey" FOREIGN KEY ("appId") REFERENCES "App" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Permission" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY,
|
||||||
|
"entityType" TEXT NOT NULL,
|
||||||
|
"entityId" TEXT NOT NULL,
|
||||||
|
"targetType" TEXT NOT NULL,
|
||||||
|
"targetId" TEXT NOT NULL,
|
||||||
|
"level" TEXT NOT NULL,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "SystemSettings" (
|
||||||
|
"id" TEXT NOT NULL PRIMARY KEY DEFAULT 'singleton',
|
||||||
|
"authMode" TEXT NOT NULL DEFAULT 'local',
|
||||||
|
"registrationEnabled" BOOLEAN NOT NULL DEFAULT true,
|
||||||
|
"oauthClientId" TEXT,
|
||||||
|
"oauthClientSecret" TEXT,
|
||||||
|
"oauthDiscoveryUrl" TEXT,
|
||||||
|
"defaultTheme" TEXT NOT NULL DEFAULT 'dark',
|
||||||
|
"defaultPrimaryColor" TEXT NOT NULL DEFAULT '#6366f1',
|
||||||
|
"healthcheckDefaults" TEXT NOT NULL DEFAULT '{}',
|
||||||
|
"customCss" TEXT,
|
||||||
|
"onboardingComplete" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"backupEnabled" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"backupCronExpression" TEXT NOT NULL DEFAULT '0 3 * * *',
|
||||||
|
"backupMaxCount" INTEGER NOT NULL DEFAULT 10,
|
||||||
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" DATETIME NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
-- CreateTable
|
-- CreateTable
|
||||||
CREATE TABLE "Tag" (
|
CREATE TABLE "Tag" (
|
||||||
@@ -121,54 +266,59 @@ CREATE TABLE "BoardTemplate" (
|
|||||||
CONSTRAINT "BoardTemplate_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
CONSTRAINT "BoardTemplate_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
-- RedefineTables
|
-- CreateIndex
|
||||||
PRAGMA defer_foreign_keys=ON;
|
|
||||||
PRAGMA foreign_keys=OFF;
|
|
||||||
CREATE TABLE "new_SystemSettings" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY DEFAULT 'singleton',
|
|
||||||
"authMode" TEXT NOT NULL DEFAULT 'local',
|
|
||||||
"registrationEnabled" BOOLEAN NOT NULL DEFAULT true,
|
|
||||||
"oauthClientId" TEXT,
|
|
||||||
"oauthClientSecret" TEXT,
|
|
||||||
"oauthDiscoveryUrl" TEXT,
|
|
||||||
"defaultTheme" TEXT NOT NULL DEFAULT 'dark',
|
|
||||||
"defaultPrimaryColor" TEXT NOT NULL DEFAULT '#6366f1',
|
|
||||||
"healthcheckDefaults" TEXT NOT NULL DEFAULT '{}',
|
|
||||||
"customCss" TEXT,
|
|
||||||
"onboardingComplete" BOOLEAN NOT NULL DEFAULT false,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL
|
|
||||||
);
|
|
||||||
INSERT INTO "new_SystemSettings" ("authMode", "createdAt", "defaultPrimaryColor", "defaultTheme", "healthcheckDefaults", "id", "oauthClientId", "oauthClientSecret", "oauthDiscoveryUrl", "registrationEnabled", "updatedAt") SELECT "authMode", "createdAt", "defaultPrimaryColor", "defaultTheme", "healthcheckDefaults", "id", "oauthClientId", "oauthClientSecret", "oauthDiscoveryUrl", "registrationEnabled", "updatedAt" FROM "SystemSettings";
|
|
||||||
DROP TABLE "SystemSettings";
|
|
||||||
ALTER TABLE "new_SystemSettings" RENAME TO "SystemSettings";
|
|
||||||
CREATE TABLE "new_User" (
|
|
||||||
"id" TEXT NOT NULL PRIMARY KEY,
|
|
||||||
"email" TEXT NOT NULL,
|
|
||||||
"password" TEXT,
|
|
||||||
"displayName" TEXT NOT NULL,
|
|
||||||
"avatarUrl" TEXT,
|
|
||||||
"authProvider" TEXT NOT NULL DEFAULT 'local',
|
|
||||||
"role" TEXT NOT NULL DEFAULT 'user',
|
|
||||||
"refreshToken" TEXT,
|
|
||||||
"refreshTokenExpiresAt" DATETIME,
|
|
||||||
"onboardingComplete" BOOLEAN NOT NULL DEFAULT false,
|
|
||||||
"trackRecentApps" BOOLEAN NOT NULL DEFAULT true,
|
|
||||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
"updatedAt" DATETIME NOT NULL,
|
|
||||||
"themeMode" TEXT,
|
|
||||||
"primaryHue" INTEGER,
|
|
||||||
"primarySaturation" INTEGER,
|
|
||||||
"backgroundType" TEXT,
|
|
||||||
"locale" TEXT
|
|
||||||
);
|
|
||||||
INSERT INTO "new_User" ("authProvider", "avatarUrl", "backgroundType", "createdAt", "displayName", "email", "id", "locale", "password", "primaryHue", "primarySaturation", "refreshToken", "refreshTokenExpiresAt", "role", "themeMode", "updatedAt") SELECT "authProvider", "avatarUrl", "backgroundType", "createdAt", "displayName", "email", "id", "locale", "password", "primaryHue", "primarySaturation", "refreshToken", "refreshTokenExpiresAt", "role", "themeMode", "updatedAt" FROM "User";
|
|
||||||
DROP TABLE "User";
|
|
||||||
ALTER TABLE "new_User" RENAME TO "User";
|
|
||||||
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
CREATE INDEX "User_email_idx" ON "User"("email");
|
CREATE INDEX "User_email_idx" ON "User"("email");
|
||||||
PRAGMA foreign_keys=ON;
|
|
||||||
PRAGMA defer_foreign_keys=OFF;
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "Group_name_key" ON "Group"("name");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "UserGroup_userId_idx" ON "UserGroup"("userId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "UserGroup_groupId_idx" ON "UserGroup"("groupId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "UserGroup_userId_groupId_key" ON "UserGroup"("userId", "groupId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "App_name_idx" ON "App"("name");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "App_category_idx" ON "App"("category");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "App_createdById_idx" ON "App"("createdById");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "AppStatus_appId_idx" ON "AppStatus"("appId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "AppStatus_checkedAt_idx" ON "AppStatus"("checkedAt");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "Board_createdById_idx" ON "Board"("createdById");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "Section_boardId_idx" ON "Section"("boardId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "Widget_sectionId_idx" ON "Widget"("sectionId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "Widget_appId_idx" ON "Widget"("appId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "Permission_entityType_entityId_idx" ON "Permission"("entityType", "entityId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "Permission_targetType_targetId_idx" ON "Permission"("targetType", "targetId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "Permission_entityType_entityId_targetType_targetId_key" ON "Permission"("entityType", "entityId", "targetType", "targetId");
|
||||||
|
|
||||||
-- CreateIndex
|
-- CreateIndex
|
||||||
CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
|
CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
|
||||||
@@ -241,3 +391,4 @@ CREATE INDEX "AuditLog_createdAt_idx" ON "AuditLog"("createdAt");
|
|||||||
|
|
||||||
-- CreateIndex
|
-- CreateIndex
|
||||||
CREATE INDEX "BoardTemplate_createdById_idx" ON "BoardTemplate"("createdById");
|
CREATE INDEX "BoardTemplate_createdById_idx" ON "BoardTemplate"("createdById");
|
||||||
|
|
||||||
Reference in New Issue
Block a user