const { Animal, Device, Alert, Order } = require('./models'); async function checkFarmForeignKeys() { try { console.log('检查引用farms表的外键情况...'); // 检查animals表 const animals = await Animal.findAll({ attributes: ['id', 'farmId'], order: [['farmId', 'ASC']] }); console.log('\nAnimals表中的farmId分布:'); const animalFarmIds = [...new Set(animals.map(a => a.farmId))].sort((a, b) => a - b); console.log('引用的farmId:', animalFarmIds); console.log(`总共 ${animals.length} 条动物记录`); // 检查devices表 const devices = await Device.findAll({ attributes: ['id', 'farmId'], order: [['farmId', 'ASC']] }); console.log('\nDevices表中的farmId分布:'); const deviceFarmIds = [...new Set(devices.map(d => d.farmId))].sort((a, b) => a - b); console.log('引用的farmId:', deviceFarmIds); console.log(`总共 ${devices.length} 条设备记录`); // 检查alerts表 const alerts = await Alert.findAll({ attributes: ['id', 'farmId'], order: [['farmId', 'ASC']] }); console.log('\nAlerts表中的farmId分布:'); const alertFarmIds = [...new Set(alerts.map(a => a.farmId))].sort((a, b) => a - b); console.log('引用的farmId:', alertFarmIds); console.log(`总共 ${alerts.length} 条警报记录`); // 检查orders表 const orders = await Order.findAll({ attributes: ['id', 'farmId'], order: [['farmId', 'ASC']] }); console.log('\nOrders表中的farmId分布:'); const orderFarmIds = [...new Set(orders.map(o => o.farmId))].sort((a, b) => a - b); console.log('引用的farmId:', orderFarmIds); console.log(`总共 ${orders.length} 条订单记录`); } catch (error) { console.error('检查失败:', error.message); } } checkFarmForeignKeys();