Files
yunhaifinance/fix-db-round2.js
T

61 lines
2.9 KiB
JavaScript
Raw Normal View History

const db = require('./backend/db-sqlite');
async function fix() {
const fixes = [
// Customers - is_default might be in a different table
"ALTER TABLE customers ADD COLUMN is_default INTEGER DEFAULT 0",
"ALTER TABLE customers ADD COLUMN type TEXT DEFAULT ''",
"ALTER TABLE customers ADD COLUMN address TEXT DEFAULT ''",
// Purchase requests
"ALTER TABLE purchase_requests ADD COLUMN code TEXT DEFAULT ''",
"ALTER TABLE purchase_requests ADD COLUMN project_id INTEGER",
"ALTER TABLE purchase_requests ADD COLUMN priority TEXT DEFAULT 'normal'",
"ALTER TABLE purchase_requests ADD COLUMN expected_date TEXT DEFAULT ''",
"ALTER TABLE purchase_requests ADD COLUMN approved_by TEXT DEFAULT ''",
"ALTER TABLE purchase_requests ADD COLUMN remark TEXT DEFAULT ''",
// Purchase orders
"ALTER TABLE purchase_orders ADD COLUMN contract_url TEXT DEFAULT ''",
"ALTER TABLE purchase_orders ADD COLUMN contract_no TEXT DEFAULT ''",
// Payment plans
"ALTER TABLE payment_plans ADD COLUMN planned_amount REAL DEFAULT 0",
"ALTER TABLE payment_plans ADD COLUMN paid_amount REAL DEFAULT 0",
"ALTER TABLE payment_plans ADD COLUMN contract_id INTEGER",
"ALTER TABLE payment_plans ADD COLUMN project_id INTEGER",
// Products
"ALTER TABLE products ADD COLUMN category_name TEXT DEFAULT ''",
"ALTER TABLE products ADD COLUMN barcode TEXT DEFAULT ''",
"ALTER TABLE products ADD COLUMN cost_price REAL DEFAULT 0",
"ALTER TABLE products ADD COLUMN stock INTEGER DEFAULT 0",
"ALTER TABLE products ADD COLUMN min_stock INTEGER DEFAULT 0",
// Reimbursements
"ALTER TABLE reimbursements ADD COLUMN applicant TEXT DEFAULT ''",
"ALTER TABLE reimbursements ADD COLUMN department TEXT DEFAULT ''",
"ALTER TABLE reimbursements ADD COLUMN type TEXT DEFAULT ''",
"ALTER TABLE reimbursements ADD COLUMN status TEXT DEFAULT 'pending'",
// Budget projects
"ALTER TABLE budget_projects ADD COLUMN created_by INTEGER",
// Projects
"ALTER TABLE projects ADD COLUMN status TEXT DEFAULT 'active'",
"ALTER TABLE projects ADD COLUMN description TEXT DEFAULT ''",
"ALTER TABLE projects ADD COLUMN start_date TEXT DEFAULT ''",
"ALTER TABLE projects ADD COLUMN end_date TEXT DEFAULT ''",
"ALTER TABLE projects ADD COLUMN manager TEXT DEFAULT ''",
// Payment nodes
"ALTER TABLE payment_nodes ADD COLUMN project_id INTEGER",
// Payment records
"ALTER TABLE payment_records ADD COLUMN payment_plan_id INTEGER",
];
for (const sql of fixes) {
try { await db.query(sql); console.log('OK:', sql.substring(0, 80)); }
catch(e) {
const msg = e.message || '';
if (msg.includes('duplicate') || msg.includes('already exists')) {
console.log('SKIP:', sql.substring(0, 80));
} else {
console.log('ERR:', msg.substring(0, 100));
}
}
}
process.exit();
}
fix();