mirror of
https://github.com/kremalicious/umami.git
synced 2024-11-15 17:55:08 +01:00
remove cascading delete
This commit is contained in:
parent
acf28a7d2f
commit
3003371752
@ -0,0 +1,35 @@
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "event" DROP CONSTRAINT IF EXISTS "event_session_id_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "event" DROP CONSTRAINT IF EXISTS "event_website_id_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "pageview" DROP CONSTRAINT IF EXISTS "pageview_session_id_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "pageview" DROP CONSTRAINT IF EXISTS "pageview_website_id_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "session" DROP CONSTRAINT IF EXISTS "session_website_id_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "website" DROP CONSTRAINT IF EXISTS "website_user_id_fkey";
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "event" ADD CONSTRAINT EXISTS "event_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "session"("session_id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "event" ADD CONSTRAINT "event_website_id_fkey" FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "pageview" ADD CONSTRAINT "pageview_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "session"("session_id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "pageview" ADD CONSTRAINT "pageview_website_id_fkey" FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "session" ADD CONSTRAINT "session_website_id_fkey" FOREIGN KEY ("website_id") REFERENCES "website"("website_id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "website" ADD CONSTRAINT "website_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "account"("user_id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
@ -24,8 +24,8 @@ model event {
|
||||
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
||||
url String @db.VarChar(500)
|
||||
event_name String @db.VarChar(50)
|
||||
session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade)
|
||||
website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade)
|
||||
session session @relation(fields: [session_id], references: [session_id])
|
||||
website website @relation(fields: [website_id], references: [website_id])
|
||||
event_data event_data?
|
||||
|
||||
@@index([created_at])
|
||||
@ -47,8 +47,8 @@ model pageview {
|
||||
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
||||
url String @db.VarChar(500)
|
||||
referrer String? @db.VarChar(500)
|
||||
session session @relation(fields: [session_id], references: [session_id], onDelete: Cascade)
|
||||
website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade)
|
||||
session session @relation(fields: [session_id], references: [session_id])
|
||||
website website @relation(fields: [website_id], references: [website_id])
|
||||
|
||||
@@index([created_at])
|
||||
@@index([session_id])
|
||||
@ -69,7 +69,7 @@ model session {
|
||||
screen String? @db.VarChar(11)
|
||||
language String? @db.VarChar(35)
|
||||
country String? @db.Char(2)
|
||||
website website @relation(fields: [website_id], references: [website_id], onDelete: Cascade)
|
||||
website website @relation(fields: [website_id], references: [website_id])
|
||||
pageview pageview[]
|
||||
event event[]
|
||||
|
||||
@ -85,7 +85,7 @@ model website {
|
||||
domain String? @db.VarChar(500)
|
||||
share_id String? @unique @db.VarChar(64)
|
||||
created_at DateTime? @default(now()) @db.Timestamptz(6)
|
||||
account account @relation(fields: [user_id], references: [user_id], onDelete: Cascade)
|
||||
account account @relation(fields: [user_id], references: [user_id])
|
||||
pageview pageview[]
|
||||
session session[]
|
||||
event event[]
|
||||
|
@ -2,10 +2,33 @@ import { prisma, runQuery } from 'lib/db';
|
||||
|
||||
export async function deleteAccount(user_id) {
|
||||
return runQuery(
|
||||
prisma.account.delete({
|
||||
where: {
|
||||
user_id,
|
||||
},
|
||||
}),
|
||||
prisma.$transaction([
|
||||
prisma.pageview.deleteMany({
|
||||
where: { session: { website: { user_id } } },
|
||||
}),
|
||||
prisma.event_data.deleteMany({
|
||||
where: { event: { session: { website: { user_id } } } },
|
||||
}),
|
||||
prisma.event.deleteMany({
|
||||
where: { session: { website: { user_id } } },
|
||||
}),
|
||||
prisma.event.deleteMany({
|
||||
where: { session: { website: { user_id } } },
|
||||
}),
|
||||
prisma.event.deleteMany({
|
||||
where: { session: { website: { user_id } } },
|
||||
}),
|
||||
prisma.session.deleteMany({
|
||||
where: { website: { user_id } },
|
||||
}),
|
||||
prisma.website.deleteMany({
|
||||
where: { user_id },
|
||||
}),
|
||||
prisma.account.delete({
|
||||
where: {
|
||||
user_id,
|
||||
},
|
||||
}),
|
||||
]),
|
||||
);
|
||||
}
|
||||
|
@ -2,10 +2,28 @@ import { prisma, runQuery } from 'lib/db';
|
||||
|
||||
export async function deleteWebsite(website_id) {
|
||||
return runQuery(
|
||||
prisma.website.delete({
|
||||
where: {
|
||||
website_id,
|
||||
},
|
||||
}),
|
||||
prisma.$transaction([
|
||||
prisma.pageview.deleteMany({
|
||||
where: { session: { website: { website_id } } },
|
||||
}),
|
||||
prisma.event_data.deleteMany({
|
||||
where: { event: { session: { website: { website_id } } } },
|
||||
}),
|
||||
prisma.event.deleteMany({
|
||||
where: { session: { website: { website_id } } },
|
||||
}),
|
||||
prisma.event.deleteMany({
|
||||
where: { session: { website: { website_id } } },
|
||||
}),
|
||||
prisma.event.deleteMany({
|
||||
where: { session: { website: { website_id } } },
|
||||
}),
|
||||
prisma.session.deleteMany({
|
||||
where: { website: { website_id } },
|
||||
}),
|
||||
prisma.website.delete({
|
||||
where: { website_id },
|
||||
}),
|
||||
]),
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user