Files
nxxmdata/backend/check-farm-foreign-keys.js
2025-08-25 15:00:46 +08:00

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();