89 lines
3.1 KiB
SQL
89 lines
3.1 KiB
SQL
/*
|
|
Warnings:
|
|
|
|
- Added the required column `password` to the `User` table without a default value. This is not possible if the table is not empty.
|
|
- Added the required column `updatedAt` to the `User` table without a default value. This is not possible if the table is not empty.
|
|
|
|
*/
|
|
-- CreateTable
|
|
CREATE TABLE "Habit" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"name" TEXT NOT NULL,
|
|
"daysOfWeek" JSONB NOT NULL,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
"userId" INTEGER NOT NULL,
|
|
CONSTRAINT "Habit_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "HabitCompletion" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"date" DATETIME NOT NULL,
|
|
"habitId" INTEGER NOT NULL,
|
|
CONSTRAINT "HabitCompletion_habitId_fkey" FOREIGN KEY ("habitId") REFERENCES "Habit" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "DailyVisit" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"date" DATETIME NOT NULL,
|
|
"userId" INTEGER NOT NULL,
|
|
CONSTRAINT "DailyVisit_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Village" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"userId" INTEGER NOT NULL,
|
|
CONSTRAINT "Village_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "VillageObject" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"type" TEXT NOT NULL,
|
|
"x" INTEGER NOT NULL,
|
|
"y" INTEGER NOT NULL,
|
|
"obstacleMetadata" TEXT,
|
|
"cropType" TEXT,
|
|
"plantedAt" DATETIME,
|
|
"villageId" INTEGER NOT NULL,
|
|
CONSTRAINT "VillageObject_villageId_fkey" FOREIGN KEY ("villageId") REFERENCES "Village" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- RedefineTables
|
|
PRAGMA defer_foreign_keys=ON;
|
|
PRAGMA foreign_keys=OFF;
|
|
CREATE TABLE "new_User" (
|
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
"email" TEXT NOT NULL,
|
|
"password" TEXT NOT NULL,
|
|
"nickname" TEXT,
|
|
"avatar" TEXT DEFAULT '/avatars/default.png',
|
|
"coins" INTEGER NOT NULL DEFAULT 0,
|
|
"exp" INTEGER NOT NULL DEFAULT 0,
|
|
"soundOn" BOOLEAN NOT NULL DEFAULT true,
|
|
"confettiOn" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL
|
|
);
|
|
INSERT INTO "new_User" ("createdAt", "email", "id") SELECT "createdAt", "email", "id" FROM "User";
|
|
DROP TABLE "User";
|
|
ALTER TABLE "new_User" RENAME TO "User";
|
|
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
|
PRAGMA foreign_keys=ON;
|
|
PRAGMA defer_foreign_keys=OFF;
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "HabitCompletion_habitId_date_key" ON "HabitCompletion"("habitId", "date");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "DailyVisit_userId_date_key" ON "DailyVisit"("userId", "date");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Village_userId_key" ON "Village"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "VillageObject_villageId_x_y_key" ON "VillageObject"("villageId", "x", "y");
|