mirror of
https://github.com/Drop-OSS/drop.git
synced 2025-11-18 02:31:19 +10:00
Rearchitecture for v0.4.0 (#197)
* feat: database redist support * feat: rearchitecture of database schemas, migration reset, and #180 * feat: import redists * fix: giantbomb logging bug * feat: partial user platform support + statusMessage -> message * feat: add user platform filters to store view * fix: sanitize svg uploads ... copilot suggested this I feel dirty. * feat: beginnings of platform & redist management * feat: add server side redist patching * fix: update drop-base commit * feat: import of custom platforms & file extensions * fix: redelete platform * fix: remove platform * feat: uninstall commands, new R UI * checkpoint: before migrating to nuxt v4 * update to nuxt 4 * fix: fixes for Nuxt v4 update * fix: remaining type issues * feat: initial feedback to import other kinds of versions * working commit * fix: lint * feat: redist import
This commit is contained in:
@ -1,25 +0,0 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "AuthMec" AS ENUM ('Simple');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "User" (
|
||||
"id" TEXT NOT NULL,
|
||||
"username" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "LinkedAuthMec" (
|
||||
"userId" TEXT NOT NULL,
|
||||
"mec" "AuthMec" NOT NULL,
|
||||
"credentials" TEXT[],
|
||||
|
||||
CONSTRAINT "LinkedAuthMec_pkey" PRIMARY KEY ("userId","mec")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "User_username_key" ON "User"("username");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "LinkedAuthMec" ADD CONSTRAINT "LinkedAuthMec_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,9 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Changed the type of `credentials` on the `LinkedAuthMec` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "LinkedAuthMec" DROP COLUMN "credentials",
|
||||
ADD COLUMN "credentials" JSONB NOT NULL;
|
||||
@ -1,76 +0,0 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "MetadataSource" AS ENUM ('Custom', 'GiantBomb');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Game" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"mName" TEXT NOT NULL,
|
||||
"mShortDescription" TEXT NOT NULL,
|
||||
"mDescription" TEXT NOT NULL,
|
||||
"mReviewCount" INTEGER NOT NULL,
|
||||
"mReviewRating" DOUBLE PRECISION NOT NULL,
|
||||
"mIconId" TEXT NOT NULL,
|
||||
"mBannerId" TEXT NOT NULL,
|
||||
"mArt" TEXT[],
|
||||
"mScreenshots" TEXT[],
|
||||
|
||||
CONSTRAINT "Game_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Developer" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"mName" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Developer_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Publisher" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"mName" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Publisher_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_GameToPublisher" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_DeveloperToGame" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "_GameToPublisher_AB_unique" ON "_GameToPublisher"("A", "B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_GameToPublisher_B_index" ON "_GameToPublisher"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "_DeveloperToGame_AB_unique" ON "_DeveloperToGame"("A", "B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_DeveloperToGame_B_index" ON "_DeveloperToGame"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_GameToPublisher" ADD CONSTRAINT "_GameToPublisher_A_fkey" FOREIGN KEY ("A") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_GameToPublisher" ADD CONSTRAINT "_GameToPublisher_B_fkey" FOREIGN KEY ("B") REFERENCES "Publisher"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_DeveloperToGame" ADD CONSTRAINT "_DeveloperToGame_A_fkey" FOREIGN KEY ("A") REFERENCES "Developer"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_DeveloperToGame" ADD CONSTRAINT "_DeveloperToGame_B_fkey" FOREIGN KEY ("B") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,24 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `mBanner` to the `Developer` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `mDescription` to the `Developer` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `mLogo` to the `Developer` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `mShortDescription` to the `Developer` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `mBanner` to the `Publisher` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `mDescription` to the `Publisher` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `mLogo` to the `Publisher` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `mShortDescription` to the `Publisher` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Developer" ADD COLUMN "mBanner" TEXT NOT NULL,
|
||||
ADD COLUMN "mDescription" TEXT NOT NULL,
|
||||
ADD COLUMN "mLogo" TEXT NOT NULL,
|
||||
ADD COLUMN "mShortDescription" TEXT NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Publisher" ADD COLUMN "mBanner" TEXT NOT NULL,
|
||||
ADD COLUMN "mDescription" TEXT NOT NULL,
|
||||
ADD COLUMN "mLogo" TEXT NOT NULL,
|
||||
ADD COLUMN "mShortDescription" TEXT NOT NULL;
|
||||
@ -1,16 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[metadataSource,metadataId]` on the table `Developer` will be added. If there are existing duplicate values, this will fail.
|
||||
- A unique constraint covering the columns `[metadataSource,metadataId]` on the table `Game` will be added. If there are existing duplicate values, this will fail.
|
||||
- A unique constraint covering the columns `[metadataSource,metadataId]` on the table `Publisher` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Developer_metadataSource_metadataId_key" ON "Developer"("metadataSource", "metadataId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Game_metadataSource_metadataId_key" ON "Game"("metadataSource", "metadataId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Publisher_metadataSource_metadataId_key" ON "Publisher"("metadataSource", "metadataId");
|
||||
@ -1,12 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `mWebsite` to the `Developer` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `mWebsite` to the `Publisher` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Developer" ADD COLUMN "mWebsite" TEXT NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Publisher" ADD COLUMN "mWebsite" TEXT NOT NULL;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "User" ADD COLUMN "admin" BOOLEAN NOT NULL DEFAULT false;
|
||||
@ -1,15 +0,0 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "ClientCapabilities" AS ENUM ('DownloadAggregation');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Client" (
|
||||
"sharedToken" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"endpoint" TEXT NOT NULL,
|
||||
"capabilities" "ClientCapabilities"[],
|
||||
|
||||
CONSTRAINT "Client_pkey" PRIMARY KEY ("sharedToken")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Client" ADD CONSTRAINT "Client_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,19 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The primary key for the `Client` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- You are about to drop the column `sharedToken` on the `Client` table. All the data in the column will be lost.
|
||||
- The required column `id` was added to the `Client` table with a prisma-level default value. This is not possible if the table is not empty. Please add this column as optional, then populate it before making it required.
|
||||
- Added the required column `lastConnected` to the `Client` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `name` to the `Client` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `platform` to the `Client` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Client" DROP CONSTRAINT "Client_pkey",
|
||||
DROP COLUMN "sharedToken",
|
||||
ADD COLUMN "id" TEXT NOT NULL,
|
||||
ADD COLUMN "lastConnected" TIMESTAMP(3) NOT NULL,
|
||||
ADD COLUMN "name" TEXT NOT NULL,
|
||||
ADD COLUMN "platform" TEXT NOT NULL,
|
||||
ADD CONSTRAINT "Client_pkey" PRIMARY KEY ("id");
|
||||
@ -1,12 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `displayName` to the `User` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `email` to the `User` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `profilePicture` to the `User` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "User" ADD COLUMN "displayName" TEXT NOT NULL,
|
||||
ADD COLUMN "email" TEXT NOT NULL,
|
||||
ADD COLUMN "profilePicture" TEXT NOT NULL;
|
||||
@ -1,25 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[libraryBasePath]` on the table `Game` will be added. If there are existing duplicate values, this will fail.
|
||||
- Added the required column `libraryBasePath` to the `Game` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `versionOrder` to the `Game` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" ADD COLUMN "libraryBasePath" TEXT NOT NULL,
|
||||
ADD COLUMN "versionOrder" TEXT NOT NULL;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "GameVersion" (
|
||||
"gameId" TEXT NOT NULL,
|
||||
"versionName" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "GameVersion_pkey" PRIMARY KEY ("gameId","versionName")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Game_libraryBasePath_key" ON "Game"("libraryBasePath");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "GameVersion" ADD CONSTRAINT "GameVersion_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,25 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The `versionOrder` column on the `Game` table would be dropped and recreated. This will lead to data loss if there is data in the column.
|
||||
- Changed the type of `platform` on the `Client` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required.
|
||||
- Added the required column `launchCommand` to the `GameVersion` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `platform` to the `GameVersion` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `setupCommand` to the `GameVersion` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- CreateEnum
|
||||
CREATE TYPE "Platform" AS ENUM ('windows', 'linux');
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Client" DROP COLUMN "platform",
|
||||
ADD COLUMN "platform" "Platform" NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" DROP COLUMN "versionOrder",
|
||||
ADD COLUMN "versionOrder" TEXT[];
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GameVersion" ADD COLUMN "launchCommand" TEXT NOT NULL,
|
||||
ADD COLUMN "platform" "Platform" NOT NULL,
|
||||
ADD COLUMN "setupCommand" TEXT NOT NULL;
|
||||
@ -1,12 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `metadataOriginalQuery` to the `Developer` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `metadataOriginalQuery` to the `Publisher` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Developer" ADD COLUMN "metadataOriginalQuery" TEXT NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Publisher" ADD COLUMN "metadataOriginalQuery" TEXT NOT NULL;
|
||||
@ -1,18 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[metadataSource,metadataId,metadataOriginalQuery]` on the table `Developer` will be added. If there are existing duplicate values, this will fail.
|
||||
- A unique constraint covering the columns `[metadataSource,metadataId,metadataOriginalQuery]` on the table `Publisher` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- DropIndex
|
||||
DROP INDEX "Developer_metadataSource_metadataId_key";
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX "Publisher_metadataSource_metadataId_key";
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Developer_metadataSource_metadataId_metadataOriginalQuery_key" ON "Developer"("metadataSource", "metadataId", "metadataOriginalQuery");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Publisher_metadataSource_metadataId_metadataOriginalQuery_key" ON "Publisher"("metadataSource", "metadataId", "metadataOriginalQuery");
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `dropletManifest` to the `GameVersion` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "GameVersion" ADD COLUMN "dropletManifest" JSONB NOT NULL;
|
||||
@ -1,14 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `mArt` on the `Game` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `mBannerId` on the `Game` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `mScreenshots` on the `Game` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" DROP COLUMN "mArt",
|
||||
DROP COLUMN "mBannerId",
|
||||
DROP COLUMN "mScreenshots",
|
||||
ADD COLUMN "mBannerIndex" INTEGER NOT NULL DEFAULT 0,
|
||||
ADD COLUMN "mImageLibrary" TEXT[];
|
||||
@ -1,10 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `mBannerIndex` on the `Game` table. All the data in the column will be lost.
|
||||
- Added the required column `mBannerId` to the `Game` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" DROP COLUMN "mBannerIndex",
|
||||
ADD COLUMN "mBannerId" TEXT NOT NULL;
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `mCoverId` to the `Game` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" ADD COLUMN "mCoverId" TEXT NOT NULL;
|
||||
@ -1,9 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `versionIndex` to the `GameVersion` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "GameVersion" ADD COLUMN "delta" BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN "versionIndex" INTEGER NOT NULL;
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `versionOrder` on the `Game` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" DROP COLUMN "versionOrder";
|
||||
@ -1,9 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Invitation" (
|
||||
"id" TEXT NOT NULL,
|
||||
"isAdmin" BOOLEAN NOT NULL DEFAULT false,
|
||||
"username" TEXT,
|
||||
"email" TEXT,
|
||||
|
||||
CONSTRAINT "Invitation_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
@ -1,7 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "ApplicationSettings" (
|
||||
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"enabledAuthencationMechanisms" "AuthMec"[],
|
||||
|
||||
CONSTRAINT "ApplicationSettings_pkey" PRIMARY KEY ("timestamp")
|
||||
);
|
||||
@ -1,14 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The values [DownloadAggregation] on the enum `ClientCapabilities` will be removed. If these variants are still used in the database, this will fail.
|
||||
|
||||
*/
|
||||
-- AlterEnum
|
||||
BEGIN;
|
||||
CREATE TYPE "ClientCapabilities_new" AS ENUM ('PeerAPI', 'UserStatus');
|
||||
ALTER TABLE "Client" ALTER COLUMN "capabilities" TYPE "ClientCapabilities_new"[] USING ("capabilities"::text::"ClientCapabilities_new"[]);
|
||||
ALTER TYPE "ClientCapabilities" RENAME TO "ClientCapabilities_old";
|
||||
ALTER TYPE "ClientCapabilities_new" RENAME TO "ClientCapabilities";
|
||||
DROP TYPE "ClientCapabilities_old";
|
||||
COMMIT;
|
||||
@ -1,14 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The values [PeerAPI,UserStatus] on the enum `ClientCapabilities` will be removed. If these variants are still used in the database, this will fail.
|
||||
|
||||
*/
|
||||
-- AlterEnum
|
||||
BEGIN;
|
||||
CREATE TYPE "ClientCapabilities_new" AS ENUM ('peerAPI', 'userStatus');
|
||||
ALTER TABLE "Client" ALTER COLUMN "capabilities" TYPE "ClientCapabilities_new"[] USING ("capabilities"::text::"ClientCapabilities_new"[]);
|
||||
ALTER TYPE "ClientCapabilities" RENAME TO "ClientCapabilities_old";
|
||||
ALTER TYPE "ClientCapabilities_new" RENAME TO "ClientCapabilities";
|
||||
DROP TYPE "ClientCapabilities_old";
|
||||
COMMIT;
|
||||
@ -1,23 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `endpoint` on the `Client` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Client" DROP COLUMN "endpoint";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ClientPeerAPIConfiguration" (
|
||||
"id" TEXT NOT NULL,
|
||||
"clientId" TEXT NOT NULL,
|
||||
"ipConfigurations" TEXT[],
|
||||
|
||||
CONSTRAINT "ClientPeerAPIConfiguration_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ClientPeerAPIConfiguration_clientId_key" ON "ClientPeerAPIConfiguration"("clientId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ClientPeerAPIConfiguration" ADD CONSTRAINT "ClientPeerAPIConfiguration_clientId_fkey" FOREIGN KEY ("clientId") REFERENCES "Client"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,9 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `ipConfigurations` on the `ClientPeerAPIConfiguration` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "ClientPeerAPIConfiguration" DROP COLUMN "ipConfigurations",
|
||||
ADD COLUMN "endpoints" TEXT[];
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `expires` to the `Invitation` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Invitation" ADD COLUMN "expires" TIMESTAMP(3) NOT NULL;
|
||||
@ -1,18 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Notification" (
|
||||
"id" TEXT NOT NULL,
|
||||
"nonce" TEXT,
|
||||
"userId" TEXT NOT NULL,
|
||||
"title" TEXT NOT NULL,
|
||||
"description" TEXT NOT NULL,
|
||||
"actions" TEXT[],
|
||||
"read" BOOLEAN NOT NULL DEFAULT false,
|
||||
|
||||
CONSTRAINT "Notification_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Notification_nonce_key" ON "Notification"("nonce");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Notification" ADD CONSTRAINT "Notification_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Notification" ADD COLUMN "created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
|
||||
@ -1,5 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" ADD COLUMN "created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GameVersion" ADD COLUMN "created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP;
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `mReleased` to the `Game` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" ADD COLUMN "mReleased" TIMESTAMP(3) NOT NULL;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "GameVersion" ADD COLUMN "umuIdOverride" TEXT;
|
||||
@ -1,5 +0,0 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "GameVersion" DROP CONSTRAINT "GameVersion_gameId_fkey";
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "GameVersion" ADD CONSTRAINT "GameVersion_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,11 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "_DeveloperToGame" ADD CONSTRAINT "_DeveloperToGame_AB_pkey" PRIMARY KEY ("A", "B");
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX "_DeveloperToGame_AB_unique";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "_GameToPublisher" ADD CONSTRAINT "_GameToPublisher_AB_pkey" PRIMARY KEY ("A", "B");
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX "_GameToPublisher_AB_unique";
|
||||
@ -1,16 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The values [Custom] on the enum `MetadataSource` will be removed. If these variants are still used in the database, this will fail.
|
||||
|
||||
*/
|
||||
-- AlterEnum
|
||||
BEGIN;
|
||||
CREATE TYPE "MetadataSource_new" AS ENUM ('Manual', 'GiantBomb');
|
||||
ALTER TABLE "Game" ALTER COLUMN "metadataSource" TYPE "MetadataSource_new" USING ("metadataSource"::text::"MetadataSource_new");
|
||||
ALTER TABLE "Developer" ALTER COLUMN "metadataSource" TYPE "MetadataSource_new" USING ("metadataSource"::text::"MetadataSource_new");
|
||||
ALTER TABLE "Publisher" ALTER COLUMN "metadataSource" TYPE "MetadataSource_new" USING ("metadataSource"::text::"MetadataSource_new");
|
||||
ALTER TYPE "MetadataSource" RENAME TO "MetadataSource_old";
|
||||
ALTER TYPE "MetadataSource_new" RENAME TO "MetadataSource";
|
||||
DROP TYPE "MetadataSource_old";
|
||||
COMMIT;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" ADD COLUMN "mImageCarousel" INTEGER[];
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" ALTER COLUMN "mImageCarousel" SET DATA TYPE TEXT[];
|
||||
@ -1,6 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "GameVersion" ADD COLUMN "launchArgs" TEXT[],
|
||||
ADD COLUMN "onlySetup" BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN "setupArgs" TEXT[],
|
||||
ALTER COLUMN "launchCommand" DROP NOT NULL,
|
||||
ALTER COLUMN "setupCommand" DROP NOT NULL;
|
||||
@ -1,29 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Collection" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
||||
"userId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Collection_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_CollectionToGame" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_CollectionToGame_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_CollectionToGame_B_index" ON "_CollectionToGame"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Collection" ADD CONSTRAINT "Collection_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_CollectionToGame" ADD CONSTRAINT "_CollectionToGame_A_fkey" FOREIGN KEY ("A") REFERENCES "Collection"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_CollectionToGame" ADD CONSTRAINT "_CollectionToGame_B_fkey" FOREIGN KEY ("B") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,28 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the `_CollectionToGame` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_CollectionToGame" DROP CONSTRAINT "_CollectionToGame_A_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_CollectionToGame" DROP CONSTRAINT "_CollectionToGame_B_fkey";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "_CollectionToGame";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "CollectionEntry" (
|
||||
"collectionId" TEXT NOT NULL,
|
||||
"gameId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "CollectionEntry_pkey" PRIMARY KEY ("collectionId","gameId")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CollectionEntry" ADD CONSTRAINT "CollectionEntry_collectionId_fkey" FOREIGN KEY ("collectionId") REFERENCES "Collection"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CollectionEntry" ADD CONSTRAINT "CollectionEntry_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,5 +0,0 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "CollectionEntry" DROP CONSTRAINT "CollectionEntry_collectionId_fkey";
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CollectionEntry" ADD CONSTRAINT "CollectionEntry_collectionId_fkey" FOREIGN KEY ("collectionId") REFERENCES "Collection"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,16 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "news" (
|
||||
"id" TEXT NOT NULL,
|
||||
"title" TEXT NOT NULL,
|
||||
"content" TEXT NOT NULL,
|
||||
"excerpt" TEXT NOT NULL,
|
||||
"tags" TEXT[],
|
||||
"image" TEXT,
|
||||
"publishedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"authorId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "news_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "news" ADD CONSTRAINT "news_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,15 +0,0 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "APITokenMode" AS ENUM ('User', 'System');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "APIToken" (
|
||||
"token" TEXT NOT NULL,
|
||||
"mode" "APITokenMode" NOT NULL,
|
||||
"userId" TEXT,
|
||||
"acls" TEXT[],
|
||||
|
||||
CONSTRAINT "APIToken_pkey" PRIMARY KEY ("token")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "APIToken" ADD CONSTRAINT "APIToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
@ -1,5 +0,0 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "CollectionEntry" DROP CONSTRAINT "CollectionEntry_gameId_fkey";
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CollectionEntry" ADD CONSTRAINT "CollectionEntry_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `name` to the `APIToken` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "APIToken" ADD COLUMN "name" TEXT NOT NULL;
|
||||
@ -1,14 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The primary key for the `APIToken` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
- The required column `id` was added to the `APIToken` table with a prisma-level default value. This is not possible if the table is not empty. Please add this column as optional, then populate it before making it required.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "APIToken" DROP CONSTRAINT "APIToken_pkey",
|
||||
ADD COLUMN "id" TEXT NOT NULL,
|
||||
ADD CONSTRAINT "APIToken_pkey" PRIMARY KEY ("id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "APIToken_token_idx" ON "APIToken"("token");
|
||||
@ -1,20 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Made the column `launchCommand` on table `GameVersion` required. This step will fail if there are existing NULL values in that column.
|
||||
- Made the column `setupCommand` on table `GameVersion` required. This step will fail if there are existing NULL values in that column.
|
||||
|
||||
*/
|
||||
UPDATE "GameVersion"
|
||||
SET "launchCommand" = ''
|
||||
WHERE "launchCommand" is NULL;
|
||||
|
||||
UPDATE "GameVersion"
|
||||
SET "setupCommand" = ''
|
||||
WHERE "launchCommand" is NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GameVersion" ALTER COLUMN "launchCommand" SET NOT NULL,
|
||||
ALTER COLUMN "launchCommand" SET DEFAULT '',
|
||||
ALTER COLUMN "setupCommand" SET NOT NULL,
|
||||
ALTER COLUMN "setupCommand" SET DEFAULT '';
|
||||
@ -1,52 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the `news` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "news" DROP CONSTRAINT "news_authorId_fkey";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "news";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Tag" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Tag_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Article" (
|
||||
"id" TEXT NOT NULL,
|
||||
"title" TEXT NOT NULL,
|
||||
"description" TEXT NOT NULL,
|
||||
"content" TEXT NOT NULL,
|
||||
"image" TEXT,
|
||||
"publishedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"authorId" TEXT,
|
||||
|
||||
CONSTRAINT "Article_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_ArticleToTag" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_ArticleToTag_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_ArticleToTag_B_index" ON "_ArticleToTag"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Article" ADD CONSTRAINT "Article_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_ArticleToTag" ADD CONSTRAINT "_ArticleToTag_A_fkey" FOREIGN KEY ("A") REFERENCES "Article"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_ArticleToTag" ADD CONSTRAINT "_ArticleToTag_B_fkey" FOREIGN KEY ("B") REFERENCES "Tag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[name]` on the table `Tag` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[token]` on the table `APIToken` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "APIToken_token_key" ON "APIToken"("token");
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "Platform" ADD VALUE 'macos';
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "ApplicationSettings" ADD COLUMN "metadataProviders" TEXT[];
|
||||
@ -1,10 +0,0 @@
|
||||
-- AlterEnum
|
||||
-- This migration adds more than one value to an enum.
|
||||
-- With PostgreSQL versions 11 and earlier, this is not possible
|
||||
-- in a single migration. This can be worked around by creating
|
||||
-- multiple migrations, each migration adding only one value to
|
||||
-- the enum.
|
||||
|
||||
|
||||
ALTER TYPE "MetadataSource" ADD VALUE 'PCGamingWiki';
|
||||
ALTER TYPE "MetadataSource" ADD VALUE 'IGDB';
|
||||
@ -1,5 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "LinkedAuthMec" ADD COLUMN "enabled" BOOLEAN NOT NULL DEFAULT true;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "User" ADD COLUMN "enabled" BOOLEAN NOT NULL DEFAULT true;
|
||||
@ -1,17 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Certificate" (
|
||||
"id" TEXT NOT NULL,
|
||||
"privateKey" TEXT NOT NULL,
|
||||
"certificate" TEXT NOT NULL,
|
||||
"blacklisted" BOOLEAN NOT NULL DEFAULT false,
|
||||
|
||||
CONSTRAINT "Certificate_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Session" (
|
||||
"token" TEXT NOT NULL,
|
||||
"data" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "Session_pkey" PRIMARY KEY ("token")
|
||||
);
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "LinkedAuthMec" ADD COLUMN "version" INTEGER NOT NULL DEFAULT 1;
|
||||
@ -1,24 +0,0 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "ClientCapabilities" ADD VALUE 'save';
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "SaveSlot" (
|
||||
"gameId" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"index" INTEGER NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"playtime" DOUBLE PRECISION NOT NULL,
|
||||
"lastUsedClientId" TEXT NOT NULL,
|
||||
"data" TEXT[],
|
||||
|
||||
CONSTRAINT "SaveSlot_pkey" PRIMARY KEY ("gameId","userId","index")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "SaveSlot" ADD CONSTRAINT "SaveSlot_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "SaveSlot" ADD CONSTRAINT "SaveSlot_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "SaveSlot" ADD CONSTRAINT "SaveSlot_lastUsedClientId_fkey" FOREIGN KEY ("lastUsedClientId") REFERENCES "Client"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,3 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "ApplicationSettings" ADD COLUMN "saveSlotCountLimit" INTEGER NOT NULL DEFAULT 5,
|
||||
ADD COLUMN "saveSlotSizeLimit" DOUBLE PRECISION NOT NULL DEFAULT 10;
|
||||
@ -1,14 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The values [save] on the enum `ClientCapabilities` will be removed. If these variants are still used in the database, this will fail.
|
||||
|
||||
*/
|
||||
-- AlterEnum
|
||||
BEGIN;
|
||||
CREATE TYPE "ClientCapabilities_new" AS ENUM ('peerAPI', 'userStatus', 'cloudSaves');
|
||||
ALTER TABLE "Client" ALTER COLUMN "capabilities" TYPE "ClientCapabilities_new"[] USING ("capabilities"::text::"ClientCapabilities_new"[]);
|
||||
ALTER TYPE "ClientCapabilities" RENAME TO "ClientCapabilities_old";
|
||||
ALTER TYPE "ClientCapabilities_new" RENAME TO "ClientCapabilities";
|
||||
DROP TYPE "ClientCapabilities_old";
|
||||
COMMIT;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "ApplicationSettings" ADD COLUMN "saveSlotHistoryLimit" INTEGER NOT NULL DEFAULT 3;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "SaveSlot" ALTER COLUMN "playtime" SET DEFAULT 0;
|
||||
@ -1,10 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `data` on the `SaveSlot` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "SaveSlot" DROP COLUMN "data",
|
||||
ADD COLUMN "history" TEXT[],
|
||||
ADD COLUMN "historyChecksums" TEXT[];
|
||||
@ -1,13 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `expiresAt` to the `Session` table without a default value. This is not possible if the table is not empty.
|
||||
- Added the required column `userId` to the `Session` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Session" ADD COLUMN "expiresAt" TIMESTAMP(3) NOT NULL,
|
||||
ADD COLUMN "userId" TEXT NOT NULL;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -1,8 +0,0 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "SaveSlot" DROP CONSTRAINT "SaveSlot_lastUsedClientId_fkey";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "SaveSlot" ALTER COLUMN "lastUsedClientId" DROP NOT NULL;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "SaveSlot" ADD CONSTRAINT "SaveSlot_lastUsedClientId_fkey" FOREIGN KEY ("lastUsedClientId") REFERENCES "Client"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "APITokenMode" ADD VALUE 'Client';
|
||||
@ -1,5 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "APIToken" ADD COLUMN "clientId" TEXT;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "APIToken" ADD CONSTRAINT "APIToken_clientId_fkey" FOREIGN KEY ("clientId") REFERENCES "Client"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,7 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "ObjectHash" (
|
||||
"id" TEXT NOT NULL,
|
||||
"hash" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "ObjectHash_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "AuthMec" ADD VALUE 'OpenID';
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `enabledAuthencationMechanisms` on the `ApplicationSettings` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "ApplicationSettings" DROP COLUMN "enabledAuthencationMechanisms";
|
||||
@ -1,20 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Screenshot" (
|
||||
"id" TEXT NOT NULL,
|
||||
"gameId" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"objectId" TEXT NOT NULL,
|
||||
"private" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMPTZ(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "Screenshot_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Screenshot_gameId_userId_idx" ON "Screenshot"("gameId", "userId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Screenshot" ADD CONSTRAINT "Screenshot_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Screenshot" ADD CONSTRAINT "Screenshot_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,16 +0,0 @@
|
||||
|
||||
-- Rename game table columns
|
||||
ALTER TABLE "Game" RENAME COLUMN "mIconId" TO "mIconObjectId";
|
||||
ALTER TABLE "Game" RENAME COLUMN "mBannerId" TO "mBannerObjectId";
|
||||
ALTER TABLE "Game" RENAME COLUMN "mCoverId" TO "mCoverObjectId";
|
||||
ALTER TABLE "Game" RENAME COLUMN "mImageCarousel" TO "mImageCarouselObjectIds";
|
||||
ALTER TABLE "Game" RENAME COLUMN "mImageLibrary" TO "mImageLibraryObjectIds";
|
||||
|
||||
-- Rename saveslot table columns
|
||||
ALTER TABLE "SaveSlot" RENAME COLUMN "history" TO "historyObjectIds";
|
||||
|
||||
-- Rename article table columns
|
||||
ALTER TABLE "Article" RENAME COLUMN "image" TO "imageObjectId";
|
||||
|
||||
-- Rename user table columns
|
||||
ALTER TABLE "User" RENAME COLUMN "profilePicture" TO "profilePictureObjectId";
|
||||
@ -1,35 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Company" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"metadataOriginalQuery" TEXT NOT NULL,
|
||||
"mName" TEXT NOT NULL,
|
||||
"mShortDescription" TEXT NOT NULL,
|
||||
"mDescription" TEXT NOT NULL,
|
||||
"mLogoObjectId" TEXT NOT NULL,
|
||||
"mBannerObjectId" TEXT NOT NULL,
|
||||
"mWebsite" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Company_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "CompanyGameRelation" (
|
||||
"companyId" TEXT NOT NULL,
|
||||
"gameId" TEXT NOT NULL,
|
||||
"developer" BOOLEAN NOT NULL DEFAULT false,
|
||||
"publisher" BOOLEAN NOT NULL DEFAULT false
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Company_metadataSource_metadataId_key" ON "Company"("metadataSource", "metadataId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "CompanyGameRelation_companyId_gameId_key" ON "CompanyGameRelation"("companyId", "gameId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CompanyGameRelation" ADD CONSTRAINT "CompanyGameRelation_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CompanyGameRelation" ADD CONSTRAINT "CompanyGameRelation_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,76 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the `CompanyGameRelation` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `Developer` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `Publisher` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `_DeveloperToGame` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `_GameToPublisher` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "CompanyGameRelation" DROP CONSTRAINT "CompanyGameRelation_companyId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "CompanyGameRelation" DROP CONSTRAINT "CompanyGameRelation_gameId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_DeveloperToGame" DROP CONSTRAINT "_DeveloperToGame_A_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_DeveloperToGame" DROP CONSTRAINT "_DeveloperToGame_B_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_GameToPublisher" DROP CONSTRAINT "_GameToPublisher_A_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_GameToPublisher" DROP CONSTRAINT "_GameToPublisher_B_fkey";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "CompanyGameRelation";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "Developer";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "Publisher";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "_DeveloperToGame";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "_GameToPublisher";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_developers" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_developers_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_publishers" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_publishers_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_developers_B_index" ON "_developers"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_publishers_B_index" ON "_publishers"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_developers" ADD CONSTRAINT "_developers_A_fkey" FOREIGN KEY ("A") REFERENCES "Company"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_developers" ADD CONSTRAINT "_developers_B_fkey" FOREIGN KEY ("B") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_publishers" ADD CONSTRAINT "_publishers_A_fkey" FOREIGN KEY ("A") REFERENCES "Company"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_publishers" ADD CONSTRAINT "_publishers_B_fkey" FOREIGN KEY ("B") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,16 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "_GameToTag" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_GameToTag_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_GameToTag_B_index" ON "_GameToTag"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_GameToTag" ADD CONSTRAINT "_GameToTag_A_fkey" FOREIGN KEY ("A") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_GameToTag" ADD CONSTRAINT "_GameToTag_B_fkey" FOREIGN KEY ("B") REFERENCES "Tag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,11 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[userId,nonce]` on the table `Notification` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- DropIndex
|
||||
DROP INDEX "Notification_nonce_key";
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Notification_userId_nonce_key" ON "Notification"("userId", "nonce");
|
||||
@ -1,41 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `mReviewCount` on the `Game` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `mReviewRating` on the `Game` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterEnum
|
||||
-- This migration adds more than one value to an enum.
|
||||
-- With PostgreSQL versions 11 and earlier, this is not possible
|
||||
-- in a single migration. This can be worked around by creating
|
||||
-- multiple migrations, each migration adding only one value to
|
||||
-- the enum.
|
||||
|
||||
|
||||
ALTER TYPE "MetadataSource" ADD VALUE 'Metacritic';
|
||||
ALTER TYPE "MetadataSource" ADD VALUE 'OpenCritic';
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" DROP COLUMN "mReviewCount",
|
||||
DROP COLUMN "mReviewRating";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "GameRating" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"mReviewCount" INTEGER NOT NULL,
|
||||
"mReviewRating" DOUBLE PRECISION NOT NULL,
|
||||
"mReviewHref" TEXT,
|
||||
"gameId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "GameRating_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "GameRating_metadataSource_metadataId_key" ON "GameRating"("metadataSource", "metadataId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "GameRating" ADD CONSTRAINT "GameRating_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Notification" ADD COLUMN "acls" TEXT[];
|
||||
@ -1,53 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the `ClientPeerAPIConfiguration` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- CreateEnum
|
||||
CREATE TYPE "LibraryBackend" AS ENUM ('Filesystem');
|
||||
|
||||
-- AlterEnum
|
||||
ALTER TYPE "ClientCapabilities" ADD VALUE 'trackPlaytime';
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "ClientPeerAPIConfiguration" DROP CONSTRAINT "ClientPeerAPIConfiguration_clientId_fkey";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Screenshot" ALTER COLUMN "private" DROP DEFAULT;
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "ClientPeerAPIConfiguration";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Library" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"backend" "LibraryBackend" NOT NULL,
|
||||
"options" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "Library_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Playtime" (
|
||||
"gameId" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"seconds" INTEGER NOT NULL,
|
||||
"updatedAt" TIMESTAMPTZ(6) NOT NULL,
|
||||
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "Playtime_pkey" PRIMARY KEY ("gameId","userId")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Playtime_userId_idx" ON "Playtime"("userId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Screenshot_userId_idx" ON "Screenshot"("userId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Playtime" ADD CONSTRAINT "Playtime_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Playtime" ADD CONSTRAINT "Playtime_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,17 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `libraryBasePath` on the `Game` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- DropIndex
|
||||
DROP INDEX "Game_libraryBasePath_key";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" RENAME COLUMN "libraryBasePath" TO "libraryPath";
|
||||
|
||||
ALTER TABLE "Game" ADD COLUMN "libraryId" TEXT;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Game"
|
||||
ADD CONSTRAINT "Game_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "Library" ("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[libraryId,libraryPath]` on the table `Game` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Game_libraryId_libraryPath_key" ON "Game"("libraryId", "libraryPath");
|
||||
@ -1,14 +0,0 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Task" (
|
||||
"id" TEXT NOT NULL,
|
||||
"taskGroup" TEXT NOT NULL,
|
||||
"started" TIMESTAMP(3) NOT NULL,
|
||||
"ended" TIMESTAMP(3) NOT NULL,
|
||||
"success" BOOLEAN NOT NULL,
|
||||
"error" JSONB,
|
||||
"progress" DOUBLE PRECISION NOT NULL,
|
||||
"log" TEXT[],
|
||||
"acls" TEXT[],
|
||||
|
||||
CONSTRAINT "Task_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
@ -1,8 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `name` to the `Task` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Task" ADD COLUMN "name" TEXT NOT NULL;
|
||||
@ -1,41 +0,0 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "APIToken" DROP CONSTRAINT "APIToken_userId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Article" DROP CONSTRAINT "Article_authorId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Client" DROP CONSTRAINT "Client_userId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Collection" DROP CONSTRAINT "Collection_userId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "LinkedAuthMec" DROP CONSTRAINT "LinkedAuthMec_userId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Notification" DROP CONSTRAINT "Notification_userId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Session" DROP CONSTRAINT "Session_userId_fkey";
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "LinkedAuthMec" ADD CONSTRAINT "LinkedAuthMec_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "APIToken" ADD CONSTRAINT "APIToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Client" ADD CONSTRAINT "Client_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Collection" ADD CONSTRAINT "Collection_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Article" ADD CONSTRAINT "Article_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Notification" ADD CONSTRAINT "Notification_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "ApplicationSettings" ADD COLUMN "showGamePanelTextDecoration" BOOLEAN NOT NULL DEFAULT true;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterEnum
|
||||
ALTER TYPE "LibraryBackend" ADD VALUE 'FlatFilesystem';
|
||||
@ -1,5 +0,0 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "Genre" AS ENUM ('Action', 'Strategy', 'Sports', 'Adventure', 'Roleplay', 'Racing', 'Simulation', 'Educational', 'Fighting', 'Shooter', 'RealTimeStrategy', 'CardGame', 'BoardGame', 'Compilation', 'MMORPG', 'MinigameCollection', 'Puzzle', 'MusicRhythm');
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" ADD COLUMN "genres" "Genre"[];
|
||||
@ -1,14 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The values [RealTimeStrategy,CardGame,BoardGame,MinigameCollection,MusicRhythm] on the enum `Genre` will be removed. If these variants are still used in the database, this will fail.
|
||||
|
||||
*/
|
||||
-- AlterEnum
|
||||
BEGIN;
|
||||
CREATE TYPE "Genre_new" AS ENUM ('Action', 'Strategy', 'Sports', 'Adventure', 'Roleplay', 'Racing', 'Simulation', 'Educational', 'Fighting', 'Shooter', 'RTS', 'Card', 'Board', 'Compilation', 'MMORPG', 'Minigames', 'Puzzle', 'Rhythm');
|
||||
ALTER TABLE "Game" ALTER COLUMN "genres" TYPE "Genre_new"[] USING ("genres"::text::"Genre_new"[]);
|
||||
ALTER TYPE "Genre" RENAME TO "Genre_old";
|
||||
ALTER TYPE "Genre_new" RENAME TO "Genre";
|
||||
DROP TYPE "Genre_old";
|
||||
COMMIT;
|
||||
@ -1,2 +0,0 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" ADD COLUMN "featured" BOOLEAN NOT NULL DEFAULT false;
|
||||
@ -1,11 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `genres` on the `Game` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Game" DROP COLUMN "genres";
|
||||
|
||||
-- DropEnum
|
||||
DROP TYPE "Genre";
|
||||
@ -1,5 +0,0 @@
|
||||
-- Add pg_trgm
|
||||
CREATE EXTENSION pg_trgm;
|
||||
|
||||
-- Create index for tag names
|
||||
-- CREATE INDEX trgm_tag_name ON "Tag" USING GIST (name gist_trgm_ops(siglen=32));
|
||||
@ -1,2 +0,0 @@
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Tag_name_idx" ON "Tag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
@ -1,87 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the `Tag` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `_ArticleToTag` table. If the table is not empty, all the data it contains will be lost.
|
||||
- You are about to drop the `_GameToTag` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_ArticleToTag" DROP CONSTRAINT "_ArticleToTag_A_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_ArticleToTag" DROP CONSTRAINT "_ArticleToTag_B_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_GameToTag" DROP CONSTRAINT "_GameToTag_A_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "_GameToTag" DROP CONSTRAINT "_GameToTag_B_fkey";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "Tag";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "_ArticleToTag";
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "_GameToTag";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "GameTag" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "GameTag_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "NewsTag" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "NewsTag_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_GameToGameTag" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_GameToGameTag_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_ArticleToNewsTag" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_ArticleToNewsTag_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "GameTag_name_key" ON "GameTag"("name");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "NewsTag_name_key" ON "NewsTag"("name");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_GameToGameTag_B_index" ON "_GameToGameTag"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_ArticleToNewsTag_B_index" ON "_ArticleToNewsTag"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_GameToGameTag" ADD CONSTRAINT "_GameToGameTag_A_fkey" FOREIGN KEY ("A") REFERENCES "Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_GameToGameTag" ADD CONSTRAINT "_GameToGameTag_B_fkey" FOREIGN KEY ("B") REFERENCES "GameTag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_ArticleToNewsTag" ADD CONSTRAINT "_ArticleToNewsTag_A_fkey" FOREIGN KEY ("A") REFERENCES "Article"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_ArticleToNewsTag" ADD CONSTRAINT "_ArticleToNewsTag_B_fkey" FOREIGN KEY ("B") REFERENCES "NewsTag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,11 +0,0 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Game" DROP CONSTRAINT "Game_libraryId_fkey";
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX "GameTag_name_idx";
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Game" ADD CONSTRAINT "Game_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "Library"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -1,15 +0,0 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- The primary key for the `Task` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
||||
|
||||
*/
|
||||
-- DropIndex
|
||||
DROP INDEX "GameTag_name_idx";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Task" DROP CONSTRAINT "Task_pkey",
|
||||
ADD CONSTRAINT "Task_pkey" PRIMARY KEY ("id", "started");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
@ -1,8 +0,0 @@
|
||||
-- DropIndex
|
||||
DROP INDEX "GameTag_name_idx";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "APIToken" ADD COLUMN "expiresAt" TIMESTAMP(3);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
765
prisma/migrations/20250906060327_init/migration.sql
Normal file
765
prisma/migrations/20250906060327_init/migration.sql
Normal file
@ -0,0 +1,765 @@
|
||||
|
||||
-- enable pg_trgm
|
||||
CREATE EXTENSION pg_trgm;
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "public"."Platform" AS ENUM ('windows', 'linux', 'macos');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "public"."LibraryBackend" AS ENUM ('Filesystem', 'FlatFilesystem');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "public"."LibraryMode" AS ENUM ('Game', 'Redist', 'DLC', 'Mod');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "public"."AuthMec" AS ENUM ('Simple', 'OpenID');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "public"."APITokenMode" AS ENUM ('User', 'System', 'Client');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "public"."ClientCapabilities" AS ENUM ('peerAPI', 'userStatus', 'cloudSaves', 'trackPlaytime');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "public"."HardwarePlatform" AS ENUM ('windows', 'linux', 'macos');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "public"."MetadataSource" AS ENUM ('Manual', 'GiantBomb', 'PCGamingWiki', 'IGDB', 'Metacritic', 'OpenCritic');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."ApplicationSettings" (
|
||||
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"metadataProviders" TEXT[],
|
||||
"saveSlotCountLimit" INTEGER NOT NULL DEFAULT 5,
|
||||
"saveSlotSizeLimit" DOUBLE PRECISION NOT NULL DEFAULT 10,
|
||||
"saveSlotHistoryLimit" INTEGER NOT NULL DEFAULT 3,
|
||||
"showGamePanelTextDecoration" BOOLEAN NOT NULL DEFAULT true,
|
||||
|
||||
CONSTRAINT "ApplicationSettings_pkey" PRIMARY KEY ("timestamp")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Library" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"backend" "public"."LibraryBackend" NOT NULL,
|
||||
"options" JSONB NOT NULL,
|
||||
"mode" "public"."LibraryMode" NOT NULL DEFAULT 'Game',
|
||||
|
||||
CONSTRAINT "Library_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."LinkedAuthMec" (
|
||||
"userId" TEXT NOT NULL,
|
||||
"mec" "public"."AuthMec" NOT NULL,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
||||
"version" INTEGER NOT NULL DEFAULT 1,
|
||||
"credentials" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "LinkedAuthMec_pkey" PRIMARY KEY ("userId","mec")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Invitation" (
|
||||
"id" TEXT NOT NULL,
|
||||
"isAdmin" BOOLEAN NOT NULL DEFAULT false,
|
||||
"username" TEXT,
|
||||
"email" TEXT,
|
||||
"expires" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Invitation_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."APIToken" (
|
||||
"id" TEXT NOT NULL,
|
||||
"token" TEXT NOT NULL,
|
||||
"mode" "public"."APITokenMode" NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"userId" TEXT,
|
||||
"clientId" TEXT,
|
||||
"acls" TEXT[],
|
||||
"expiresAt" TIMESTAMP(3),
|
||||
|
||||
CONSTRAINT "APIToken_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Certificate" (
|
||||
"id" TEXT NOT NULL,
|
||||
"privateKey" TEXT NOT NULL,
|
||||
"certificate" TEXT NOT NULL,
|
||||
"blacklisted" BOOLEAN NOT NULL DEFAULT false,
|
||||
|
||||
CONSTRAINT "Certificate_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Session" (
|
||||
"token" TEXT NOT NULL,
|
||||
"expiresAt" TIMESTAMP(3) NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"data" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "Session_pkey" PRIMARY KEY ("token")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Client" (
|
||||
"id" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"capabilities" "public"."ClientCapabilities"[],
|
||||
"name" TEXT NOT NULL,
|
||||
"platform" "public"."HardwarePlatform" NOT NULL,
|
||||
"lastConnected" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Client_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Collection" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
||||
"userId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Collection_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."CollectionEntry" (
|
||||
"collectionId" TEXT NOT NULL,
|
||||
"gameId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "CollectionEntry_pkey" PRIMARY KEY ("collectionId","gameId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."UserPlatform" (
|
||||
"id" TEXT NOT NULL,
|
||||
"platformName" TEXT NOT NULL,
|
||||
"iconSvg" TEXT NOT NULL,
|
||||
"fileExtensions" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
||||
"redistId" TEXT,
|
||||
|
||||
CONSTRAINT "UserPlatform_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."PlatformLink" (
|
||||
"id" TEXT NOT NULL,
|
||||
"platform" "public"."HardwarePlatform",
|
||||
"userPlatformId" TEXT,
|
||||
|
||||
CONSTRAINT "PlatformLink_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."LaunchOption" (
|
||||
"launchId" TEXT NOT NULL,
|
||||
"versionId" TEXT NOT NULL,
|
||||
"launchGId" TEXT,
|
||||
"installGId" TEXT,
|
||||
"uninstallGId" TEXT,
|
||||
"name" TEXT NOT NULL,
|
||||
"description" TEXT NOT NULL,
|
||||
"command" TEXT NOT NULL,
|
||||
"args" TEXT NOT NULL DEFAULT '',
|
||||
|
||||
CONSTRAINT "LaunchOption_pkey" PRIMARY KEY ("launchId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Version" (
|
||||
"versionId" TEXT NOT NULL,
|
||||
"versionPath" TEXT NOT NULL,
|
||||
"versionName" TEXT NOT NULL,
|
||||
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"gameId" TEXT,
|
||||
"redistId" TEXT,
|
||||
"dlcId" TEXT,
|
||||
"modId" TEXT,
|
||||
"dropletManifest" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "Version_pkey" PRIMARY KEY ("versionId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."GameVersion" (
|
||||
"versionId" TEXT NOT NULL,
|
||||
"installId" TEXT,
|
||||
"uninstallId" TEXT,
|
||||
"onlySetup" BOOLEAN NOT NULL DEFAULT false,
|
||||
"umuIdOverride" TEXT,
|
||||
"versionIndex" INTEGER NOT NULL,
|
||||
"delta" BOOLEAN NOT NULL DEFAULT false,
|
||||
"hidden" BOOLEAN NOT NULL DEFAULT false,
|
||||
"platformId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "GameVersion_pkey" PRIMARY KEY ("versionId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."DLCVersion" (
|
||||
"versionId" TEXT NOT NULL,
|
||||
"platformId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "DLCVersion_pkey" PRIMARY KEY ("versionId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."RedistVersion" (
|
||||
"versionId" TEXT NOT NULL,
|
||||
"platformId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "RedistVersion_pkey" PRIMARY KEY ("versionId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."ModVersion" (
|
||||
"versionId" TEXT NOT NULL,
|
||||
"dependencies" TEXT[],
|
||||
"platformId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "ModVersion_pkey" PRIMARY KEY ("versionId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."SaveSlot" (
|
||||
"gameId" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"index" INTEGER NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"playtime" DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||||
"lastUsedClientId" TEXT,
|
||||
"historyObjectIds" TEXT[],
|
||||
"historyChecksums" TEXT[],
|
||||
|
||||
CONSTRAINT "SaveSlot_pkey" PRIMARY KEY ("gameId","userId","index")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Screenshot" (
|
||||
"id" TEXT NOT NULL,
|
||||
"gameId" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"objectId" TEXT NOT NULL,
|
||||
"private" BOOLEAN NOT NULL,
|
||||
"createdAt" TIMESTAMPTZ(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "Screenshot_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Playtime" (
|
||||
"gameId" TEXT NOT NULL,
|
||||
"userId" TEXT NOT NULL,
|
||||
"seconds" INTEGER NOT NULL,
|
||||
"updatedAt" TIMESTAMPTZ(6) NOT NULL,
|
||||
"createdAt" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "Playtime_pkey" PRIMARY KEY ("gameId","userId")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."ObjectHash" (
|
||||
"id" TEXT NOT NULL,
|
||||
"hash" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "ObjectHash_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Game" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "public"."MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"mName" TEXT NOT NULL,
|
||||
"mShortDescription" TEXT NOT NULL,
|
||||
"mDescription" TEXT NOT NULL,
|
||||
"mReleased" TIMESTAMP(3) NOT NULL,
|
||||
"featured" BOOLEAN NOT NULL DEFAULT false,
|
||||
"mIconObjectId" TEXT NOT NULL,
|
||||
"mBannerObjectId" TEXT NOT NULL,
|
||||
"mCoverObjectId" TEXT NOT NULL,
|
||||
"mImageCarouselObjectIds" TEXT[],
|
||||
"mImageLibraryObjectIds" TEXT[],
|
||||
"libraryId" TEXT NOT NULL,
|
||||
"libraryPath" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Game_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."DLC" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"description" TEXT NOT NULL,
|
||||
"iconObjectId" TEXT NOT NULL,
|
||||
"libraryId" TEXT NOT NULL,
|
||||
"libraryPath" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "DLC_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."GameDLCMetadata" (
|
||||
"id" TEXT NOT NULL,
|
||||
"mName" TEXT NOT NULL,
|
||||
"mShortDescription" TEXT NOT NULL,
|
||||
"mDescription" TEXT NOT NULL,
|
||||
"mIconObjectId" TEXT NOT NULL,
|
||||
"mBannerObjectId" TEXT NOT NULL,
|
||||
"mCoverObjectId" TEXT NOT NULL,
|
||||
"mImageCarouselObjectIds" TEXT[],
|
||||
"mImageLibraryObjectIds" TEXT[],
|
||||
|
||||
CONSTRAINT "GameDLCMetadata_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Redist" (
|
||||
"id" TEXT NOT NULL,
|
||||
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"mName" TEXT NOT NULL,
|
||||
"mShortDescription" TEXT NOT NULL,
|
||||
"mIconObjectId" TEXT NOT NULL,
|
||||
"libraryId" TEXT NOT NULL,
|
||||
"libraryPath" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Redist_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Mod" (
|
||||
"id" TEXT NOT NULL,
|
||||
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"gameId" TEXT NOT NULL,
|
||||
"user" BOOLEAN NOT NULL DEFAULT true,
|
||||
"mName" TEXT NOT NULL,
|
||||
"mShortDescription" TEXT NOT NULL,
|
||||
"mDescription" TEXT NOT NULL,
|
||||
"mReleased" TIMESTAMP(3) NOT NULL,
|
||||
"mIconObjectId" TEXT NOT NULL,
|
||||
"mBannerObjectId" TEXT NOT NULL,
|
||||
"mCoverObjectId" TEXT NOT NULL,
|
||||
"mImageCarouselObjectIds" TEXT[],
|
||||
"mImageLibraryObjectIds" TEXT[],
|
||||
"libraryId" TEXT NOT NULL,
|
||||
"libraryPath" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Mod_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."GameTag" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "GameTag_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."GameRating" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "public"."MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"mReviewCount" INTEGER NOT NULL,
|
||||
"mReviewRating" DOUBLE PRECISION NOT NULL,
|
||||
"mReviewHref" TEXT,
|
||||
"gameId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "GameRating_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Company" (
|
||||
"id" TEXT NOT NULL,
|
||||
"metadataSource" "public"."MetadataSource" NOT NULL,
|
||||
"metadataId" TEXT NOT NULL,
|
||||
"metadataOriginalQuery" TEXT NOT NULL,
|
||||
"mName" TEXT NOT NULL,
|
||||
"mShortDescription" TEXT NOT NULL,
|
||||
"mDescription" TEXT NOT NULL,
|
||||
"mLogoObjectId" TEXT NOT NULL,
|
||||
"mBannerObjectId" TEXT NOT NULL,
|
||||
"mWebsite" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Company_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."NewsTag" (
|
||||
"id" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "NewsTag_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Article" (
|
||||
"id" TEXT NOT NULL,
|
||||
"title" TEXT NOT NULL,
|
||||
"description" TEXT NOT NULL,
|
||||
"content" TEXT NOT NULL,
|
||||
"imageObjectId" TEXT,
|
||||
"publishedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"authorId" TEXT,
|
||||
|
||||
CONSTRAINT "Article_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Task" (
|
||||
"id" TEXT NOT NULL,
|
||||
"taskGroup" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"started" TIMESTAMP(3) NOT NULL,
|
||||
"ended" TIMESTAMP(3) NOT NULL,
|
||||
"success" BOOLEAN NOT NULL,
|
||||
"error" JSONB,
|
||||
"progress" DOUBLE PRECISION NOT NULL,
|
||||
"log" TEXT[],
|
||||
"acls" TEXT[],
|
||||
|
||||
CONSTRAINT "Task_pkey" PRIMARY KEY ("id","started")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."User" (
|
||||
"id" TEXT NOT NULL,
|
||||
"username" TEXT NOT NULL,
|
||||
"admin" BOOLEAN NOT NULL DEFAULT false,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
||||
"email" TEXT NOT NULL,
|
||||
"displayName" TEXT NOT NULL,
|
||||
"profilePictureObjectId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."Notification" (
|
||||
"id" TEXT NOT NULL,
|
||||
"nonce" TEXT,
|
||||
"userId" TEXT NOT NULL,
|
||||
"acls" TEXT[],
|
||||
"created" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"title" TEXT NOT NULL,
|
||||
"description" TEXT NOT NULL,
|
||||
"actions" TEXT[],
|
||||
"read" BOOLEAN NOT NULL DEFAULT false,
|
||||
|
||||
CONSTRAINT "Notification_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."_GameVersionToRedistVersion" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_GameVersionToRedistVersion_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."_DLCVersionToRedistVersion" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_DLCVersionToRedistVersion_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."_GameToGameTag" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_GameToGameTag_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."_GameTagToMod" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_GameTagToMod_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."_developers" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_developers_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."_publishers" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_publishers_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "public"."_ArticleToNewsTag" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_ArticleToNewsTag_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "APIToken_token_key" ON "public"."APIToken"("token");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "APIToken_token_idx" ON "public"."APIToken"("token");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "UserPlatform_redistId_key" ON "public"."UserPlatform"("redistId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "LaunchOption_installGId_key" ON "public"."LaunchOption"("installGId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "LaunchOption_uninstallGId_key" ON "public"."LaunchOption"("uninstallGId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Version_versionId_key" ON "public"."Version"("versionId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "GameVersion_installId_key" ON "public"."GameVersion"("installId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "GameVersion_uninstallId_key" ON "public"."GameVersion"("uninstallId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Screenshot_gameId_userId_idx" ON "public"."Screenshot"("gameId", "userId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Screenshot_userId_idx" ON "public"."Screenshot"("userId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "Playtime_userId_idx" ON "public"."Playtime"("userId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Game_metadataSource_metadataId_key" ON "public"."Game"("metadataSource", "metadataId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Game_libraryId_libraryPath_key" ON "public"."Game"("libraryId", "libraryPath");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Redist_libraryId_libraryPath_key" ON "public"."Redist"("libraryId", "libraryPath");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "GameTag_name_key" ON "public"."GameTag"("name");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "GameRating_metadataSource_metadataId_key" ON "public"."GameRating"("metadataSource", "metadataId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Company_metadataSource_metadataId_key" ON "public"."Company"("metadataSource", "metadataId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "NewsTag_name_key" ON "public"."NewsTag"("name");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "User_username_key" ON "public"."User"("username");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Notification_userId_nonce_key" ON "public"."Notification"("userId", "nonce");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_GameVersionToRedistVersion_B_index" ON "public"."_GameVersionToRedistVersion"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_DLCVersionToRedistVersion_B_index" ON "public"."_DLCVersionToRedistVersion"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_GameToGameTag_B_index" ON "public"."_GameToGameTag"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_GameTagToMod_B_index" ON "public"."_GameTagToMod"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_developers_B_index" ON "public"."_developers"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_publishers_B_index" ON "public"."_publishers"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_ArticleToNewsTag_B_index" ON "public"."_ArticleToNewsTag"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."LinkedAuthMec" ADD CONSTRAINT "LinkedAuthMec_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."APIToken" ADD CONSTRAINT "APIToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."APIToken" ADD CONSTRAINT "APIToken_clientId_fkey" FOREIGN KEY ("clientId") REFERENCES "public"."Client"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Client" ADD CONSTRAINT "Client_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Collection" ADD CONSTRAINT "Collection_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."CollectionEntry" ADD CONSTRAINT "CollectionEntry_collectionId_fkey" FOREIGN KEY ("collectionId") REFERENCES "public"."Collection"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."CollectionEntry" ADD CONSTRAINT "CollectionEntry_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."UserPlatform" ADD CONSTRAINT "UserPlatform_redistId_fkey" FOREIGN KEY ("redistId") REFERENCES "public"."Redist"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."PlatformLink" ADD CONSTRAINT "PlatformLink_userPlatformId_fkey" FOREIGN KEY ("userPlatformId") REFERENCES "public"."UserPlatform"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."LaunchOption" ADD CONSTRAINT "redistVersion_fkey" FOREIGN KEY ("versionId") REFERENCES "public"."RedistVersion"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."LaunchOption" ADD CONSTRAINT "LaunchOption_launchGId_fkey" FOREIGN KEY ("launchGId") REFERENCES "public"."GameVersion"("versionId") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Version" ADD CONSTRAINT "game_link" FOREIGN KEY ("gameId") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Version" ADD CONSTRAINT "redist_link" FOREIGN KEY ("redistId") REFERENCES "public"."Redist"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Version" ADD CONSTRAINT "dlc_link" FOREIGN KEY ("dlcId") REFERENCES "public"."DLC"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Version" ADD CONSTRAINT "mod_link" FOREIGN KEY ("modId") REFERENCES "public"."Mod"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."GameVersion" ADD CONSTRAINT "GameVersion_versionId_fkey" FOREIGN KEY ("versionId") REFERENCES "public"."Version"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."GameVersion" ADD CONSTRAINT "GameVersion_installId_fkey" FOREIGN KEY ("installId") REFERENCES "public"."LaunchOption"("launchId") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."GameVersion" ADD CONSTRAINT "GameVersion_uninstallId_fkey" FOREIGN KEY ("uninstallId") REFERENCES "public"."LaunchOption"("launchId") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."GameVersion" ADD CONSTRAINT "GameVersion_platformId_fkey" FOREIGN KEY ("platformId") REFERENCES "public"."PlatformLink"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."DLCVersion" ADD CONSTRAINT "DLCVersion_versionId_fkey" FOREIGN KEY ("versionId") REFERENCES "public"."Version"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."DLCVersion" ADD CONSTRAINT "DLCVersion_platformId_fkey" FOREIGN KEY ("platformId") REFERENCES "public"."PlatformLink"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."RedistVersion" ADD CONSTRAINT "RedistVersion_versionId_fkey" FOREIGN KEY ("versionId") REFERENCES "public"."Version"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."RedistVersion" ADD CONSTRAINT "RedistVersion_platformId_fkey" FOREIGN KEY ("platformId") REFERENCES "public"."PlatformLink"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."ModVersion" ADD CONSTRAINT "ModVersion_versionId_fkey" FOREIGN KEY ("versionId") REFERENCES "public"."Version"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."ModVersion" ADD CONSTRAINT "ModVersion_platformId_fkey" FOREIGN KEY ("platformId") REFERENCES "public"."PlatformLink"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."SaveSlot" ADD CONSTRAINT "SaveSlot_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."SaveSlot" ADD CONSTRAINT "SaveSlot_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."SaveSlot" ADD CONSTRAINT "SaveSlot_lastUsedClientId_fkey" FOREIGN KEY ("lastUsedClientId") REFERENCES "public"."Client"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Screenshot" ADD CONSTRAINT "Screenshot_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Screenshot" ADD CONSTRAINT "Screenshot_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Playtime" ADD CONSTRAINT "Playtime_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Playtime" ADD CONSTRAINT "Playtime_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Game" ADD CONSTRAINT "Game_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "public"."Library"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."DLC" ADD CONSTRAINT "DLC_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "public"."Library"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."GameDLCMetadata" ADD CONSTRAINT "GameDLCMetadata_id_fkey" FOREIGN KEY ("id") REFERENCES "public"."DLC"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Redist" ADD CONSTRAINT "Redist_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "public"."Library"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Mod" ADD CONSTRAINT "Mod_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "public"."Game"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Mod" ADD CONSTRAINT "Mod_libraryId_fkey" FOREIGN KEY ("libraryId") REFERENCES "public"."Library"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."GameRating" ADD CONSTRAINT "GameRating_gameId_fkey" FOREIGN KEY ("gameId") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Article" ADD CONSTRAINT "Article_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."Notification" ADD CONSTRAINT "Notification_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_GameVersionToRedistVersion" ADD CONSTRAINT "_GameVersionToRedistVersion_A_fkey" FOREIGN KEY ("A") REFERENCES "public"."GameVersion"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_GameVersionToRedistVersion" ADD CONSTRAINT "_GameVersionToRedistVersion_B_fkey" FOREIGN KEY ("B") REFERENCES "public"."RedistVersion"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_DLCVersionToRedistVersion" ADD CONSTRAINT "_DLCVersionToRedistVersion_A_fkey" FOREIGN KEY ("A") REFERENCES "public"."DLCVersion"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_DLCVersionToRedistVersion" ADD CONSTRAINT "_DLCVersionToRedistVersion_B_fkey" FOREIGN KEY ("B") REFERENCES "public"."RedistVersion"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_GameToGameTag" ADD CONSTRAINT "_GameToGameTag_A_fkey" FOREIGN KEY ("A") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_GameToGameTag" ADD CONSTRAINT "_GameToGameTag_B_fkey" FOREIGN KEY ("B") REFERENCES "public"."GameTag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_GameTagToMod" ADD CONSTRAINT "_GameTagToMod_A_fkey" FOREIGN KEY ("A") REFERENCES "public"."GameTag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_GameTagToMod" ADD CONSTRAINT "_GameTagToMod_B_fkey" FOREIGN KEY ("B") REFERENCES "public"."Mod"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_developers" ADD CONSTRAINT "_developers_A_fkey" FOREIGN KEY ("A") REFERENCES "public"."Company"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_developers" ADD CONSTRAINT "_developers_B_fkey" FOREIGN KEY ("B") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_publishers" ADD CONSTRAINT "_publishers_A_fkey" FOREIGN KEY ("A") REFERENCES "public"."Company"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_publishers" ADD CONSTRAINT "_publishers_B_fkey" FOREIGN KEY ("B") REFERENCES "public"."Game"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_ArticleToNewsTag" ADD CONSTRAINT "_ArticleToNewsTag_A_fkey" FOREIGN KEY ("A") REFERENCES "public"."Article"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."_ArticleToNewsTag" ADD CONSTRAINT "_ArticleToNewsTag_B_fkey" FOREIGN KEY ("B") REFERENCES "public"."NewsTag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -0,0 +1,15 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `platform` on the `PlatformLink` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- DropIndex
|
||||
DROP INDEX "public"."GameTag_name_idx";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "public"."PlatformLink" DROP COLUMN "platform",
|
||||
ADD COLUMN "hardwarePlatform" "public"."HardwarePlatform";
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
@ -0,0 +1,21 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `versionId` on the `LaunchOption` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "public"."LaunchOption" DROP CONSTRAINT "redistVersion_fkey";
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX "public"."GameTag_name_idx";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "public"."LaunchOption" DROP COLUMN "versionId",
|
||||
ADD COLUMN "redistVersionId" TEXT;
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."LaunchOption" ADD CONSTRAINT "redistVersion_fkey" FOREIGN KEY ("redistVersionId") REFERENCES "public"."RedistVersion"("versionId") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -0,0 +1,20 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `userPlatformId` on the `PlatformLink` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "public"."PlatformLink" DROP CONSTRAINT "PlatformLink_userPlatformId_fkey";
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX "public"."GameTag_name_idx";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "public"."PlatformLink" DROP COLUMN "userPlatformId";
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "public"."PlatformLink" ADD CONSTRAINT "PlatformLink_id_fkey" FOREIGN KEY ("id") REFERENCES "public"."UserPlatform"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@ -0,0 +1,8 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "public"."PlatformLink" DROP CONSTRAINT "PlatformLink_id_fkey";
|
||||
|
||||
-- DropIndex
|
||||
DROP INDEX "public"."GameTag_name_idx";
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "GameTag_name_idx" ON "public"."GameTag" USING GIST ("name" gist_trgm_ops(siglen=32));
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user