Files
yunhaifinance/company-finance-system/backend/update-payment-requests-table.js
T

57 lines
1.9 KiB
JavaScript

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('company_finance.db');
// 更新付款申请表,添加新字段
db.serialize(() => {
console.log('开始更新付款申请表...');
// 检查字段是否存在
db.all("PRAGMA table_info(payment_requests)", (err, rows) => {
if (err) {
console.error('获取表结构失败:', err.message);
db.close();
return;
}
const existingColumns = rows.map(row => row.name);
// 需要添加的字段
const columnsToAdd = [
{ name: 'payee_type', type: 'TEXT' }, // 收款单位类型:subcontractor/supplier/customer/other
{ name: 'payee_id', type: 'INTEGER' }, // 收款单位ID(当类型为subcontractor/supplier/customer时)
{ name: 'expense_type', type: 'TEXT' }, // 支出类型:company/project
{ name: 'expense_category', type: 'TEXT' }, // 支出分类
{ name: 'project_id', type: 'INTEGER' } // 关联项目ID(当expense_type为project时)
];
let addedCount = 0;
columnsToAdd.forEach(column => {
if (!existingColumns.includes(column.name)) {
db.run(`ALTER TABLE payment_requests ADD COLUMN ${column.name} ${column.type}`, (err) => {
if (err) {
console.error(`添加 ${column.name} 字段失败:`, err.message);
} else {
console.log(`✓ ${column.name} 字段添加成功`);
addedCount++;
}
});
} else {
console.log(`✓ ${column.name} 字段已存在`);
}
});
// 关闭数据库连接
setTimeout(() => {
console.log(`\n共添加 ${addedCount} 个新字段`);
db.close((err) => {
if (err) {
console.error('关闭数据库失败:', err.message);
} else {
console.log('数据库连接已关闭');
}
});
}, 500);
});
});