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
|
||||
ALTER TABLE "Board" ADD COLUMN "backgroundType" TEXT;
|
||||
ALTER TABLE "Board" ADD COLUMN "cardSize" TEXT;
|
||||
ALTER TABLE "Board" ADD COLUMN "customCss" TEXT;
|
||||
ALTER TABLE "Board" ADD COLUMN "themeHue" INTEGER;
|
||||
ALTER TABLE "Board" ADD COLUMN "themeSaturation" INTEGER;
|
||||
ALTER TABLE "Board" ADD COLUMN "wallpaperBlur" INTEGER;
|
||||
ALTER TABLE "Board" ADD COLUMN "wallpaperOverlay" REAL;
|
||||
ALTER TABLE "Board" ADD COLUMN "wallpaperUrl" TEXT;
|
||||
-- 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,
|
||||
"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
|
||||
ALTER TABLE "Section" ADD COLUMN "cardSize" TEXT;
|
||||
-- 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,
|
||||
"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
|
||||
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
|
||||
);
|
||||
|
||||
-- RedefineTables
|
||||
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";
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
||||
|
||||
-- CreateIndex
|
||||
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
|
||||
CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
|
||||
@@ -241,3 +391,4 @@ CREATE INDEX "AuditLog_createdAt_idx" ON "AuditLog"("createdAt");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "BoardTemplate_createdById_idx" ON "BoardTemplate"("createdById");
|
||||
|
||||
Reference in New Issue
Block a user