61 lines
2.9 KiB
JavaScript
61 lines
2.9 KiB
JavaScript
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();
|