diff --git a/backend/models/falukant/data/stock.js b/backend/models/falukant/data/stock.js index 65dcf73..e38d884 100644 --- a/backend/models/falukant/data/stock.js +++ b/backend/models/falukant/data/stock.js @@ -6,8 +6,7 @@ class FalukantStock extends Model { } FalukantStock.init({ branchId: { type: DataTypes.INTEGER, - allowNull: false, - defaultValue: 0 + allowNull: false }, stockTypeId: { type: DataTypes.INTEGER, diff --git a/backend/utils/syncDatabase.js b/backend/utils/syncDatabase.js index 1e7e63e..f12c305 100644 --- a/backend/utils/syncDatabase.js +++ b/backend/utils/syncDatabase.js @@ -54,24 +54,39 @@ const syncDatabase = async () => { console.warn('⚠️ Konnte traffic_light-Spalte nicht vorab sicherstellen:', e?.message || e); } - // Cleanup: Entferne verwaiste user_param_visibility Einträge vor Schema-Updates (nur wenn Schema-Updates aktiviert) + // Cleanup: Entferne verwaiste Einträge vor Schema-Updates (nur wenn Schema-Updates aktiviert) if (currentStage === 'dev') { - console.log("Cleaning up orphaned user_param_visibility entries..."); + console.log("Cleaning up orphaned entries..."); try { - const result = await sequelize.query(` + // Cleanup user_param_visibility + const result1 = await sequelize.query(` DELETE FROM community.user_param_visibility WHERE param_id NOT IN ( SELECT id FROM community.user_param ); `); - const deletedCount = result[1] || 0; - if (deletedCount > 0) { - console.log(`✅ ${deletedCount} verwaiste user_param_visibility Einträge entfernt`); - } else { + const deletedCount1 = result1[1] || 0; + if (deletedCount1 > 0) { + console.log(`✅ ${deletedCount1} verwaiste user_param_visibility Einträge entfernt`); + } + + // Cleanup stock mit ungültigen branch_id (0 oder nicht existierend) + const result2 = await sequelize.query(` + DELETE FROM falukant_data.stock + WHERE branch_id = 0 OR branch_id NOT IN ( + SELECT id FROM falukant_data.branch + ); + `); + const deletedCount2 = result2[1] || 0; + if (deletedCount2 > 0) { + console.log(`✅ ${deletedCount2} verwaiste stock Einträge entfernt`); + } + + if (deletedCount1 === 0 && deletedCount2 === 0) { console.log("✅ Keine verwaisten Einträge gefunden"); } } catch (e) { - console.warn('⚠️ Konnte verwaiste user_param_visibility Einträge nicht bereinigen:', e?.message || e); + console.warn('⚠️ Konnte verwaiste Einträge nicht bereinigen:', e?.message || e); } } @@ -193,23 +208,38 @@ const syncDatabaseForDeployment = async () => { console.warn('⚠️ Konnte Transport-Spalten nicht nullable machen:', e?.message || e); } - // Cleanup: Entferne verwaiste user_param_visibility Einträge vor Schema-Updates - console.log("Cleaning up orphaned user_param_visibility entries..."); + // Cleanup: Entferne verwaiste Einträge vor Schema-Updates + console.log("Cleaning up orphaned entries..."); try { - const result = await sequelize.query(` + // Cleanup user_param_visibility + const result1 = await sequelize.query(` DELETE FROM community.user_param_visibility WHERE param_id NOT IN ( SELECT id FROM community.user_param ); `); - const deletedCount = result[1] || 0; - if (deletedCount > 0) { - console.log(`✅ ${deletedCount} verwaiste user_param_visibility Einträge entfernt`); - } else { + const deletedCount1 = result1[1] || 0; + if (deletedCount1 > 0) { + console.log(`✅ ${deletedCount1} verwaiste user_param_visibility Einträge entfernt`); + } + + // Cleanup stock mit ungültigen branch_id (0 oder nicht existierend) + const result2 = await sequelize.query(` + DELETE FROM falukant_data.stock + WHERE branch_id = 0 OR branch_id NOT IN ( + SELECT id FROM falukant_data.branch + ); + `); + const deletedCount2 = result2[1] || 0; + if (deletedCount2 > 0) { + console.log(`✅ ${deletedCount2} verwaiste stock Einträge entfernt`); + } + + if (deletedCount1 === 0 && deletedCount2 === 0) { console.log("✅ Keine verwaisten Einträge gefunden"); } } catch (e) { - console.warn('⚠️ Konnte verwaiste user_param_visibility Einträge nicht bereinigen:', e?.message || e); + console.warn('⚠️ Konnte verwaiste Einträge nicht bereinigen:', e?.message || e); } console.log("Setting up associations...");