68 lines
3.1 KiB
SQL
68 lines
3.1 KiB
SQL
PRAGMA defer_foreign_keys=ON;
|
|
PRAGMA foreign_keys=OFF;
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "MaterialGroup" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"classId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT "MaterialGroup_classId_fkey" FOREIGN KEY ("classId") REFERENCES "Class" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- RedefineTables
|
|
CREATE TABLE "new_Deck" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"classId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"groupId" TEXT,
|
|
CONSTRAINT "Deck_classId_fkey" FOREIGN KEY ("classId") REFERENCES "Class" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "Deck_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "MaterialGroup" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
);
|
|
INSERT INTO "new_Deck" ("classId", "createdAt", "description", "id", "name", "sortOrder")
|
|
SELECT "classId", "createdAt", "description", "id", "name", "sortOrder" FROM "Deck";
|
|
DROP TABLE "Deck";
|
|
ALTER TABLE "new_Deck" RENAME TO "Deck";
|
|
|
|
CREATE TABLE "new_QuizSet" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"classId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"groupId" TEXT,
|
|
CONSTRAINT "QuizSet_classId_fkey" FOREIGN KEY ("classId") REFERENCES "Class" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "QuizSet_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "MaterialGroup" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
);
|
|
INSERT INTO "new_QuizSet" ("classId", "createdAt", "description", "id", "name", "sortOrder")
|
|
SELECT "classId", "createdAt", "description", "id", "name", "sortOrder" FROM "QuizSet";
|
|
DROP TABLE "QuizSet";
|
|
ALTER TABLE "new_QuizSet" RENAME TO "QuizSet";
|
|
|
|
CREATE TABLE "new_ShareLink" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"targetType" TEXT NOT NULL,
|
|
"deckId" TEXT,
|
|
"quizSetId" TEXT,
|
|
"groupId" TEXT,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT "ShareLink_deckId_fkey" FOREIGN KEY ("deckId") REFERENCES "Deck" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "ShareLink_quizSetId_fkey" FOREIGN KEY ("quizSetId") REFERENCES "QuizSet" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "ShareLink_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "MaterialGroup" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
INSERT INTO "new_ShareLink" ("createdAt", "deckId", "id", "quizSetId", "targetType")
|
|
SELECT "createdAt", "deckId", "id", "quizSetId", "targetType" FROM "ShareLink";
|
|
DROP TABLE "ShareLink";
|
|
ALTER TABLE "new_ShareLink" RENAME TO "ShareLink";
|
|
CREATE UNIQUE INDEX "ShareLink_deckId_key" ON "ShareLink"("deckId");
|
|
CREATE UNIQUE INDEX "ShareLink_quizSetId_key" ON "ShareLink"("quizSetId");
|
|
CREATE UNIQUE INDEX "ShareLink_groupId_key" ON "ShareLink"("groupId");
|
|
|
|
PRAGMA foreign_keys=ON;
|
|
PRAGMA defer_foreign_keys=OFF;
|