5ded128263
* fix: user uuid is used instead of user id for its uniqueness * fix: use cuid instead & exclude from parser * fix: apply new foreign key constraints to existing data * fix: migration partly done * not-fix: General form of migration achieved, still broken * fix: migrate and use db's uuid function for existing users * fix: Proper not nulling! * fix: #354 * fix: migration & use uuid instead --------- Co-authored-by: dicedtomato <35403473+diced@users.noreply.github.com> Co-authored-by: diced <pranaco2@gmail.com>
53 lines
No EOL
1.7 KiB
SQL
53 lines
No EOL
1.7 KiB
SQL
/*
|
|
Warnings:
|
|
|
|
- A unique constraint covering the columns `[uuid]` on the table `User` will be added. If there are existing duplicate values, this will fail.
|
|
|
|
*/
|
|
-- PRISMA GENERATED BELOW
|
|
-- -- DropForeignKey
|
|
-- ALTER TABLE "OAuth" DROP CONSTRAINT "OAuth_userId_fkey";
|
|
--
|
|
-- -- AlterTable
|
|
-- ALTER TABLE "OAuth" ALTER COLUMN "userId" SET DATA TYPE TEXT;
|
|
--
|
|
-- -- AlterTable
|
|
-- ALTER TABLE "User" ADD COLUMN "uuid" UUID NOT NULL DEFAULT gen_random_uuid();
|
|
--
|
|
-- -- CreateIndex
|
|
-- CREATE UNIQUE INDEX "User_uuid_key" ON "User"("uuid");
|
|
--
|
|
-- -- AddForeignKey
|
|
-- ALTER TABLE "OAuth" ADD CONSTRAINT "OAuth_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("uuid") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- User made changes below
|
|
|
|
-- Rename old foreign key
|
|
ALTER TABLE "OAuth" RENAME CONSTRAINT "OAuth_userId_fkey" TO "OAuth_userId_old_fkey";
|
|
|
|
-- Rename old column
|
|
ALTER TABLE "OAuth" RENAME COLUMN "userId" TO "userId_old";
|
|
|
|
-- Add new column
|
|
ALTER TABLE "OAuth" ADD COLUMN "userId" UUID;
|
|
|
|
-- Add user uuid
|
|
ALTER TABLE "User" ADD COLUMN "uuid" UUID NOT NULL DEFAULT gen_random_uuid();
|
|
|
|
-- Update table "OAuth" with uuid
|
|
UPDATE "OAuth" SET "userId" = "User"."uuid" FROM "User" WHERE "OAuth"."userId_old" = "User"."id";
|
|
|
|
-- Alter table "OAuth" to make "userId" required
|
|
ALTER TABLE "OAuth" ALTER COLUMN "userId" SET NOT NULL;
|
|
|
|
-- Create index
|
|
CREATE UNIQUE INDEX "User_uuid_key" ON "User"("uuid");
|
|
|
|
-- Add new foreign key
|
|
ALTER TABLE "OAuth" ADD CONSTRAINT "OAuth_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("uuid") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- Drop old foreign key
|
|
ALTER TABLE "OAuth" DROP CONSTRAINT "OAuth_userId_old_fkey";
|
|
|
|
-- Drop old column
|
|
ALTER TABLE "OAuth" DROP COLUMN "userId_old"; |