/* Warnings: - You are about to drop the column `ownerId` on the `Channel` table. All the data in the column will be lost. - You are about to drop the column `senderId` on the `Message` table. All the data in the column will be lost. - You are about to drop the column `userId` on the `Session` table. All the data in the column will be lost. - You are about to drop the column `id` on the `User` table. All the data in the column will be lost. - You are about to drop the column `userId` on the `UserPreferences` table. All the data in the column will be lost. */ -- RedefineTables PRAGMA defer_foreign_keys=ON; PRAGMA foreign_keys=OFF; CREATE TABLE "new_Channel" ( "id" TEXT NOT NULL PRIMARY KEY, "ownerUsername" TEXT, "name" TEXT NOT NULL, "persistent" BOOLEAN NOT NULL, CONSTRAINT "Channel_ownerUsername_fkey" FOREIGN KEY ("ownerUsername") REFERENCES "User" ("username") ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO "new_Channel" ("id", "name", "ownerUsername", "persistent") SELECT "id", "name", "ownerUsername", "persistent" FROM "Channel"; DROP TABLE "Channel"; ALTER TABLE "new_Channel" RENAME TO "Channel"; CREATE TABLE "new_Message" ( "id" TEXT NOT NULL PRIMARY KEY, "text" TEXT NOT NULL, "senderUsername" TEXT, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" DATETIME NOT NULL, CONSTRAINT "Message_senderUsername_fkey" FOREIGN KEY ("senderUsername") REFERENCES "User" ("username") ON DELETE SET NULL ON UPDATE CASCADE ); INSERT INTO "new_Message" ("createdAt", "id", "senderUsername", "text", "updatedAt") SELECT "createdAt", "id", "senderUsername", "text", "updatedAt" FROM "Message"; DROP TABLE "Message"; ALTER TABLE "new_Message" RENAME TO "Message"; CREATE TABLE "new_Session" ( "id" TEXT NOT NULL PRIMARY KEY, "username" TEXT NOT NULL, "expiresAt" DATETIME NOT NULL, CONSTRAINT "Session_username_fkey" FOREIGN KEY ("username") REFERENCES "User" ("username") ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO "new_Session" ("expiresAt", "id", "username") SELECT "expiresAt", "id", "username" FROM "Session"; DROP TABLE "Session"; ALTER TABLE "new_Session" RENAME TO "Session"; CREATE INDEX "Session_username_idx" ON "Session"("username"); CREATE TABLE "new_User" ( "username" TEXT NOT NULL PRIMARY KEY, "password" TEXT NOT NULL, "displayName" TEXT NOT NULL, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" DATETIME NOT NULL ); INSERT INTO "new_User" ("createdAt", "displayName", "password", "updatedAt", "username") SELECT "createdAt", "displayName", "password", "updatedAt", "username" FROM "User"; DROP TABLE "User"; ALTER TABLE "new_User" RENAME TO "User"; CREATE UNIQUE INDEX "User_username_key" ON "User"("username"); CREATE TABLE "new_UserPreferences" ( "username" TEXT NOT NULL PRIMARY KEY, "toggleInputHotkey" TEXT DEFAULT '', "toggleOutputHotkey" TEXT DEFAULT '', CONSTRAINT "UserPreferences_username_fkey" FOREIGN KEY ("username") REFERENCES "User" ("username") ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO "new_UserPreferences" ("toggleInputHotkey", "toggleOutputHotkey", "username") SELECT "toggleInputHotkey", "toggleOutputHotkey", "username" FROM "UserPreferences"; DROP TABLE "UserPreferences"; ALTER TABLE "new_UserPreferences" RENAME TO "UserPreferences"; CREATE UNIQUE INDEX "UserPreferences_username_key" ON "UserPreferences"("username"); PRAGMA foreign_keys=ON; PRAGMA defer_foreign_keys=OFF;