From 0a1388bf06b58c011045452d3d0ab6f8174d7c59 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Thu, 18 Dec 2025 15:17:01 +0100 Subject: [PATCH] Add cleanup for orphaned knowledge entries in syncDatabase functions to remove invalid character_id and product_id references, enhancing data integrity and logging. --- backend/utils/syncDatabase.js | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/backend/utils/syncDatabase.js b/backend/utils/syncDatabase.js index f12c305..e9f5ff8 100644 --- a/backend/utils/syncDatabase.js +++ b/backend/utils/syncDatabase.js @@ -82,7 +82,21 @@ const syncDatabase = async () => { console.log(`✅ ${deletedCount2} verwaiste stock Einträge entfernt`); } - if (deletedCount1 === 0 && deletedCount2 === 0) { + // Cleanup knowledge mit ungültigen character_id oder product_id + const result3 = await sequelize.query(` + DELETE FROM falukant_data.knowledge + WHERE character_id NOT IN ( + SELECT id FROM falukant_data.character + ) OR product_id NOT IN ( + SELECT id FROM falukant_type.product + ); + `); + const deletedCount3 = result3[1] || 0; + if (deletedCount3 > 0) { + console.log(`✅ ${deletedCount3} verwaiste knowledge Einträge entfernt`); + } + + if (deletedCount1 === 0 && deletedCount2 === 0 && deletedCount3 === 0) { console.log("✅ Keine verwaisten Einträge gefunden"); } } catch (e) { @@ -235,7 +249,21 @@ const syncDatabaseForDeployment = async () => { console.log(`✅ ${deletedCount2} verwaiste stock Einträge entfernt`); } - if (deletedCount1 === 0 && deletedCount2 === 0) { + // Cleanup knowledge mit ungültigen character_id oder product_id + const result3 = await sequelize.query(` + DELETE FROM falukant_data.knowledge + WHERE character_id NOT IN ( + SELECT id FROM falukant_data.character + ) OR product_id NOT IN ( + SELECT id FROM falukant_type.product + ); + `); + const deletedCount3 = result3[1] || 0; + if (deletedCount3 > 0) { + console.log(`✅ ${deletedCount3} verwaiste knowledge Einträge entfernt`); + } + + if (deletedCount1 === 0 && deletedCount2 === 0 && deletedCount3 === 0) { console.log("✅ Keine verwaisten Einträge gefunden"); } } catch (e) {