From c9b3da18bdbee957be4053c8a11f243df2c78532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aaron=20D=C3=B6tsch?= <aaron@fsmpi.rwth-aachen.de> Date: Wed, 1 Mar 2023 15:58:31 +0100 Subject: [PATCH] Add database initialisation --- .gitignore | 1 - .../20230301145217_initial/migration.sql | 102 ++++++++++++++++++ prisma/migrations/migration_lock.toml | 3 + 3 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 prisma/migrations/20230301145217_initial/migration.sql create mode 100644 prisma/migrations/migration_lock.toml diff --git a/.gitignore b/.gitignore index f49fc0e..7c2b6ad 100644 --- a/.gitignore +++ b/.gitignore @@ -191,7 +191,6 @@ package # End of https://www.toptal.com/developers/gitignore/api/svelte,git,visualstudiocode,node ### Prisma -prisma/migrations prisma/*.db prisma/*.db-journal diff --git a/prisma/migrations/20230301145217_initial/migration.sql b/prisma/migrations/20230301145217_initial/migration.sql new file mode 100644 index 0000000..a70efa4 --- /dev/null +++ b/prisma/migrations/20230301145217_initial/migration.sql @@ -0,0 +1,102 @@ +-- CreateTable +CREATE TABLE "User" ( + "id" SERIAL NOT NULL, + "email" TEXT NOT NULL, + "name" TEXT NOT NULL, + "balance" INTEGER NOT NULL DEFAULT 0, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3) NOT NULL, + "comment" TEXT NOT NULL DEFAULT '', + + CONSTRAINT "User_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "UserCard" ( + "userId" INTEGER NOT NULL, + "card" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "perms" INTEGER NOT NULL DEFAULT 0, + "updatedAt" TIMESTAMP(3) NOT NULL +); + +-- CreateTable +CREATE TABLE "Transaction" ( + "id" SERIAL NOT NULL, + "amount" INTEGER NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "userId" INTEGER NOT NULL, + + CONSTRAINT "Transaction_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "ItemCategory" ( + "id" SERIAL NOT NULL, + "name" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "ItemCategory_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Item" ( + "code" TEXT NOT NULL, + "name" TEXT NOT NULL, + "price" INTEGER NOT NULL, + "categoryId" INTEGER NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "image" TEXT, + "stock" INTEGER NOT NULL DEFAULT 0, + "available" BOOLEAN NOT NULL DEFAULT true, + + CONSTRAINT "Item_pkey" PRIMARY KEY ("code") +); + +-- CreateTable +CREATE TABLE "ItemTransaction" ( + "id" SERIAL NOT NULL, + "itemCode" TEXT NOT NULL, + "userId" INTEGER NOT NULL, + "price" INTEGER NOT NULL, + "premium" INTEGER NOT NULL DEFAULT 0, + "card" TEXT NOT NULL DEFAULT '', + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "ItemTransaction_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Restock" ( + "id" SERIAL NOT NULL, + "amount" INTEGER NOT NULL, + "itemCode" TEXT NOT NULL, + "cost" INTEGER NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Restock_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "UserCard_card_key" ON "UserCard"("card"); + +-- AddForeignKey +ALTER TABLE "UserCard" ADD CONSTRAINT "UserCard_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Transaction" ADD CONSTRAINT "Transaction_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Item" ADD CONSTRAINT "Item_categoryId_fkey" FOREIGN KEY ("categoryId") REFERENCES "ItemCategory"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ItemTransaction" ADD CONSTRAINT "ItemTransaction_itemCode_fkey" FOREIGN KEY ("itemCode") REFERENCES "Item"("code") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "ItemTransaction" ADD CONSTRAINT "ItemTransaction_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Restock" ADD CONSTRAINT "Restock_itemCode_fkey" FOREIGN KEY ("itemCode") REFERENCES "Item"("code") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..fbffa92 --- /dev/null +++ b/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "postgresql" \ No newline at end of file -- GitLab