-- Bei einem Gruppen-CC kann ein einzelner Spieler ausfallen, waehrend die -- uebrigen weiterspielen: geputzt, entzogen oder im Rollenspiel gestorben. -- Der Grund haengt deshalb auch an der Mitgliedschaft, nicht nur am CC. ALTER TABLE "CharacterMember" ADD COLUMN IF NOT EXISTS "inactiveReason" "InactiveReason"; ALTER TABLE "CharacterMember" ADD COLUMN IF NOT EXISTS "inactiveNote" TEXT; -- Wer seinen Anteil am Gruppen-CC redesignt, steigt damit aus und bekommt -- einen eigenen CC. Wohin er gewechselt ist, bleibt nachvollziehbar. ALTER TABLE "CharacterMember" ADD COLUMN IF NOT EXISTS "successorId" INTEGER; CREATE INDEX IF NOT EXISTS "CharacterMember_successorId_idx" ON "CharacterMember"("successorId"); DO $$ BEGIN ALTER TABLE "CharacterMember" ADD CONSTRAINT "CharacterMember_successorId_fkey" FOREIGN KEY ("successorId") REFERENCES "Character"("id") ON DELETE SET NULL ON UPDATE CASCADE; EXCEPTION WHEN duplicate_object THEN NULL; END $$;