备份:修复前完整项目快照 2026-04-19
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
const db = require('./backend/db-sqlite');
|
||||
async function fix() {
|
||||
const fixes = [
|
||||
// Missing tables
|
||||
`CREATE TABLE IF NOT EXISTS supplier_payment_infos (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
supplier_id INTEGER,
|
||||
bank_name TEXT DEFAULT '',
|
||||
account_name TEXT DEFAULT '',
|
||||
account_number TEXT DEFAULT '',
|
||||
is_default INTEGER DEFAULT 0,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)`,
|
||||
`CREATE TABLE IF NOT EXISTS customer_payment_infos (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
customer_id INTEGER,
|
||||
bank_name TEXT DEFAULT '',
|
||||
account_name TEXT DEFAULT '',
|
||||
account_number TEXT DEFAULT '',
|
||||
is_default INTEGER DEFAULT 0,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)`,
|
||||
`CREATE TABLE IF NOT EXISTS logistics_contacts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
logistics_company_id INTEGER,
|
||||
name TEXT DEFAULT '',
|
||||
phone TEXT DEFAULT '',
|
||||
email TEXT DEFAULT '',
|
||||
position TEXT DEFAULT '',
|
||||
is_primary INTEGER DEFAULT 0,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)`,
|
||||
`CREATE TABLE IF NOT EXISTS logistics_records (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
logistics_company_id INTEGER,
|
||||
order_no TEXT DEFAULT '',
|
||||
amount REAL DEFAULT 0,
|
||||
status TEXT DEFAULT '',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)`,
|
||||
`CREATE TABLE IF NOT EXISTS supplier_contacts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
supplier_id INTEGER,
|
||||
name TEXT DEFAULT '',
|
||||
phone TEXT DEFAULT '',
|
||||
email TEXT DEFAULT '',
|
||||
position TEXT DEFAULT '',
|
||||
is_primary INTEGER DEFAULT 0,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)`,
|
||||
`CREATE TABLE IF NOT EXISTS customer_contacts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
customer_id INTEGER,
|
||||
name TEXT DEFAULT '',
|
||||
phone TEXT DEFAULT '',
|
||||
email TEXT DEFAULT '',
|
||||
position TEXT DEFAULT '',
|
||||
is_primary INTEGER DEFAULT 0,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
)`,
|
||||
|
||||
// Missing columns
|
||||
"ALTER TABLE purchase_orders ADD COLUMN remark TEXT DEFAULT ''",
|
||||
"ALTER TABLE purchase_orders ADD COLUMN order_code TEXT DEFAULT ''",
|
||||
"ALTER TABLE purchase_orders ADD COLUMN supplier_name TEXT DEFAULT ''",
|
||||
"ALTER TABLE payment_plans ADD COLUMN remark TEXT DEFAULT ''",
|
||||
"ALTER TABLE return_records ADD COLUMN code TEXT DEFAULT ''",
|
||||
"ALTER TABLE return_records ADD COLUMN product_name TEXT DEFAULT ''",
|
||||
"ALTER TABLE return_records ADD COLUMN quantity REAL DEFAULT 0",
|
||||
"ALTER TABLE return_records ADD COLUMN unit TEXT DEFAULT ''",
|
||||
"ALTER TABLE return_records ADD COLUMN unit_price REAL DEFAULT 0",
|
||||
"ALTER TABLE return_records ADD COLUMN amount REAL DEFAULT 0",
|
||||
"ALTER TABLE returns ADD COLUMN reason TEXT DEFAULT ''",
|
||||
"ALTER TABLE returns ADD COLUMN status TEXT DEFAULT 'pending'",
|
||||
"ALTER TABLE returns ADD COLUMN code TEXT DEFAULT ''",
|
||||
|
||||
// Projects - add missing columns
|
||||
"ALTER TABLE projects ADD COLUMN code TEXT DEFAULT ''",
|
||||
"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 ''",
|
||||
"ALTER TABLE projects ADD COLUMN budget REAL DEFAULT 0",
|
||||
|
||||
// Exchange rates - add missing columns
|
||||
"ALTER TABLE exchange_rates ADD COLUMN currency TEXT DEFAULT ''",
|
||||
"ALTER TABLE exchange_rates ADD COLUMN rate REAL DEFAULT 1",
|
||||
"ALTER TABLE exchange_rates ADD COLUMN date TEXT DEFAULT ''",
|
||||
"ALTER TABLE exchange_rates ADD COLUMN source TEXT DEFAULT ''",
|
||||
|
||||
// Budget projects - add missing columns
|
||||
"ALTER TABLE budget_projects ADD COLUMN name TEXT DEFAULT ''",
|
||||
"ALTER TABLE budget_projects ADD COLUMN status TEXT DEFAULT 'draft'",
|
||||
"ALTER TABLE budget_projects ADD COLUMN total_amount REAL DEFAULT 0",
|
||||
"ALTER TABLE budget_projects ADD COLUMN description TEXT DEFAULT ''",
|
||||
"ALTER TABLE budget_projects ADD COLUMN created_by INTEGER",
|
||||
"ALTER TABLE budget_projects ADD COLUMN version TEXT DEFAULT '1.0'",
|
||||
|
||||
// Customers - add missing columns
|
||||
"ALTER TABLE customers ADD COLUMN type TEXT DEFAULT ''",
|
||||
"ALTER TABLE customers ADD COLUMN email TEXT DEFAULT ''",
|
||||
"ALTER TABLE customers ADD COLUMN address TEXT DEFAULT ''",
|
||||
"ALTER TABLE customers ADD COLUMN contact TEXT DEFAULT ''",
|
||||
"ALTER TABLE customers ADD COLUMN phone TEXT DEFAULT ''",
|
||||
"ALTER TABLE customers ADD COLUMN remark TEXT DEFAULT ''",
|
||||
"ALTER TABLE customers ADD COLUMN status TEXT DEFAULT 'active'",
|
||||
|
||||
// Suppliers - add missing columns
|
||||
"ALTER TABLE suppliers ADD COLUMN type TEXT DEFAULT ''",
|
||||
"ALTER TABLE suppliers ADD COLUMN email TEXT DEFAULT ''",
|
||||
"ALTER TABLE suppliers ADD COLUMN address TEXT DEFAULT ''",
|
||||
"ALTER TABLE suppliers ADD COLUMN contact TEXT DEFAULT ''",
|
||||
"ALTER TABLE suppliers ADD COLUMN phone TEXT DEFAULT ''",
|
||||
"ALTER TABLE suppliers ADD COLUMN remark TEXT DEFAULT ''",
|
||||
"ALTER TABLE suppliers ADD COLUMN status TEXT DEFAULT 'active'",
|
||||
];
|
||||
|
||||
for (const sql of fixes) {
|
||||
try {
|
||||
await db.query(sql);
|
||||
console.log('OK:', sql.substring(0, 70));
|
||||
} catch(e) {
|
||||
const msg = e.message || '';
|
||||
if (msg.includes('duplicate') || msg.includes('already exists')) {
|
||||
console.log('SKIP:', sql.substring(0, 70));
|
||||
} else {
|
||||
console.log('ERR:', msg.substring(0, 100));
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log('\nAll remaining fixes applied!');
|
||||
process.exit();
|
||||
}
|
||||
fix();
|
||||
Reference in New Issue
Block a user