Files
yunhaifinance/fix-db-round3.js
T

48 lines
2.2 KiB
JavaScript

const db = require('./backend/db-sqlite');
async function fix() {
const fixes = [
// Purchase requests
"ALTER TABLE purchase_requests ADD COLUMN applicant TEXT DEFAULT ''",
"ALTER TABLE purchase_requests ADD COLUMN department TEXT DEFAULT ''",
"ALTER TABLE purchase_requests ADD COLUMN total_amount REAL DEFAULT 0",
"ALTER TABLE purchase_requests ADD COLUMN items TEXT DEFAULT '[]'",
// Purchase orders
"ALTER TABLE purchase_orders ADD COLUMN quotation_url TEXT DEFAULT ''",
"ALTER TABLE purchase_orders ADD COLUMN quotation_no TEXT DEFAULT ''",
"ALTER TABLE purchase_orders ADD COLUMN delivery_date TEXT DEFAULT ''",
"ALTER TABLE purchase_orders ADD COLUMN payment_terms TEXT DEFAULT ''",
// Payment plans
"ALTER TABLE payment_plans ADD COLUMN planned_percentage REAL DEFAULT 0",
"ALTER TABLE payment_plans ADD COLUMN actual_amount REAL DEFAULT 0",
"ALTER TABLE payment_plans ADD COLUMN payment_method TEXT DEFAULT ''",
// Products
"ALTER TABLE products ADD COLUMN source TEXT DEFAULT ''",
"ALTER TABLE products ADD COLUMN supplier TEXT DEFAULT ''",
"ALTER TABLE products ADD COLUMN location TEXT DEFAULT ''",
// Customers - check if is_default exists in a view
"ALTER TABLE customers ADD COLUMN is_default INTEGER DEFAULT 0",
// Reimbursements
"ALTER TABLE reimbursements ADD COLUMN items TEXT DEFAULT '[]'",
"ALTER TABLE reimbursements ADD COLUMN total_amount REAL DEFAULT 0",
// Budget projects
"ALTER TABLE budget_projects ADD COLUMN created_by INTEGER",
// Projects - add POST support columns
"ALTER TABLE projects ADD COLUMN contract_no TEXT DEFAULT ''",
"ALTER TABLE projects ADD COLUMN project_type TEXT DEFAULT ''",
"ALTER TABLE projects ADD COLUMN location TEXT DEFAULT ''",
];
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();