Fix error when trying to delete user with uploaded images (#4295)

* Fix error when trying to delete user with uploaded images

`{"error":"database_error","description":"Database Error: Error while interacting with the database: error returned from database: update or delete on table \"users\" violates foreign key constraint \"uploaded_images_owner_id_fkey\" on table \"uploaded_images\""}`

* Update certain things to use Ghost instead of deleting entirely

* Fix mistake
This commit is contained in:
Emma Alexia
2025-09-06 19:05:34 -04:00
committed by GitHub
parent a323bf6c25
commit c017038f71
6 changed files with 76 additions and 19 deletions

View File

@@ -1,6 +1,6 @@
{ {
"db_name": "PostgreSQL", "db_name": "PostgreSQL",
"query": "\n DELETE FROM reports\n WHERE user_id = $1 OR reporter = $1\n ", "query": "\n DELETE FROM reports\n WHERE reporter = $1\n ",
"describe": { "describe": {
"columns": [], "columns": [],
"parameters": { "parameters": {
@@ -10,5 +10,5 @@
}, },
"nullable": [] "nullable": []
}, },
"hash": "0461463e3e14f6c8ede5571a2905b8171e8caf4ebbd3ec844ef2cebd83980247" "hash": "4a28872d188834822be5df7be5d023ba6425bda15bf568eebbd8175912eb5700"
} }

View File

@@ -1,14 +0,0 @@
{
"db_name": "PostgreSQL",
"query": "\n DELETE FROM payouts\n WHERE user_id = $1\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": []
},
"hash": "4de9fdac1831320d744cb6edd0cfe6e1fd670348f0ef881f67d7aec1acd6571f"
}

View File

@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "\n UPDATE payouts\n SET user_id = $1\n WHERE user_id = $2\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": []
},
"hash": "54bfa46679475b799f85494e1aafd093dd6023259a1e617eeb2c5491e5e5f704"
}

View File

@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "\n UPDATE reports\n SET user_id = $1\n WHERE user_id = $2\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": []
},
"hash": "b8c62f703e8460a29a406b4b5a46fd30169f7ce6628f31c6749dada507cdc325"
}

View File

@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "\n UPDATE uploaded_images\n SET owner_id = $1\n WHERE owner_id = $2\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": []
},
"hash": "fbc0c5d96263c6bc65787bbecdd264e8130a353058ac028d4fce4a38568019ee"
}

View File

@@ -599,13 +599,25 @@ impl DBUser {
sqlx::query!( sqlx::query!(
" "
DELETE FROM reports DELETE FROM reports
WHERE user_id = $1 OR reporter = $1 WHERE reporter = $1
", ",
id as DBUserId, id as DBUserId,
) )
.execute(&mut **transaction) .execute(&mut **transaction)
.await?; .await?;
sqlx::query!(
"
UPDATE reports
SET user_id = $1
WHERE user_id = $2
",
deleted_user as DBUserId,
id as DBUserId,
)
.execute(&mut **transaction)
.await?;
sqlx::query!( sqlx::query!(
" "
DELETE FROM mod_follows DELETE FROM mod_follows
@@ -638,9 +650,11 @@ impl DBUser {
sqlx::query!( sqlx::query!(
" "
DELETE FROM payouts UPDATE payouts
WHERE user_id = $1 SET user_id = $1
WHERE user_id = $2
", ",
deleted_user as DBUserId,
id as DBUserId, id as DBUserId,
) )
.execute(&mut **transaction) .execute(&mut **transaction)
@@ -668,6 +682,18 @@ impl DBUser {
.execute(&mut **transaction) .execute(&mut **transaction)
.await?; .await?;
sqlx::query!(
"
UPDATE uploaded_images
SET owner_id = $1
WHERE owner_id = $2
",
deleted_user as DBUserId,
id as DBUserId,
)
.execute(&mut **transaction)
.await?;
sqlx::query!( sqlx::query!(
" "
DELETE FROM sessions DELETE FROM sessions