56 lines
1.9 KiB
JavaScript
56 lines
1.9 KiB
JavaScript
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(); |