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) {