备份:修复前完整项目快照 2026-04-19
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
/**
|
||||
* 添加物流公司联系人表迁移脚本
|
||||
* 修复物流公司详情获取失败的问题
|
||||
* 日期:2026-04-08
|
||||
*/
|
||||
|
||||
const db = require('../db-sqlite');
|
||||
|
||||
async function createLogisticsCompanyContactsTable() {
|
||||
try {
|
||||
console.log('开始创建物流公司联系人表...');
|
||||
|
||||
// 创建物流公司联系人表
|
||||
await db.query(`
|
||||
CREATE TABLE IF NOT EXISTS logistics_company_contacts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
logistics_company_id INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
phone TEXT,
|
||||
email TEXT,
|
||||
position TEXT,
|
||||
is_primary INTEGER DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (logistics_company_id) REFERENCES logistics_companies(id) ON DELETE CASCADE
|
||||
)
|
||||
`);
|
||||
|
||||
// 创建索引
|
||||
await db.query('CREATE INDEX IF NOT EXISTS idx_lc_contacts_company ON logistics_company_contacts(logistics_company_id)');
|
||||
await db.query('CREATE INDEX IF NOT EXISTS idx_lc_contacts_primary ON logistics_company_contacts(is_primary)');
|
||||
|
||||
console.log('物流公司联系人表创建成功!');
|
||||
|
||||
// 检查是否有现有的物流公司,为它们添加默认联系人
|
||||
const companies = await db.query('SELECT id, name FROM logistics_companies');
|
||||
|
||||
if (companies.rows.length > 0) {
|
||||
console.log(`为 ${companies.rows.length} 个物流公司添加默认联系人...`);
|
||||
|
||||
for (const company of companies.rows) {
|
||||
// 检查是否已有联系人
|
||||
const existingContacts = await db.query(
|
||||
'SELECT COUNT(*) as count FROM logistics_company_contacts WHERE logistics_company_id = ?',
|
||||
[company.id]
|
||||
);
|
||||
|
||||
if (existingContacts.rows[0].count === 0) {
|
||||
// 添加默认联系人
|
||||
await db.query(`
|
||||
INSERT INTO logistics_company_contacts
|
||||
(logistics_company_id, name, phone, email, position, is_primary, created_at)
|
||||
VALUES (?, ?, ?, ?, ?, 1, datetime('now'))
|
||||
`, [company.id, '默认联系人', '', '', '联系人']);
|
||||
|
||||
console.log(`为物流公司 "${company.name}" 添加了默认联系人`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log('迁移完成!');
|
||||
return { success: true, message: '物流公司联系人表创建成功' };
|
||||
} catch (error) {
|
||||
console.error('创建物流公司联系人表失败:', error);
|
||||
return { success: false, message: '创建物流公司联系人表失败', error: error.message };
|
||||
}
|
||||
}
|
||||
|
||||
// 如果直接运行此脚本
|
||||
if (require.main === module) {
|
||||
createLogisticsCompanyContactsTable()
|
||||
.then(result => {
|
||||
if (result.success) {
|
||||
console.log('✅ 迁移成功:', result.message);
|
||||
process.exit(0);
|
||||
} else {
|
||||
console.error('❌ 迁移失败:', result.message);
|
||||
process.exit(1);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('❌ 迁移执行失败:', error);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = createLogisticsCompanyContactsTable;
|
||||
Reference in New Issue
Block a user