备份:修复前完整项目快照 2026-04-19
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
const db = require('./backend/db-sqlite');
|
||||
async function fix() {
|
||||
// Drop the failed new table first
|
||||
try { await db.query('DROP TABLE IF EXISTS payment_plans_new'); } catch(e) {}
|
||||
|
||||
// Get current columns
|
||||
const info = await db.query("PRAGMA table_info(payment_plans)");
|
||||
const cols = info.rows.map(r => r.name);
|
||||
console.log('Current payment_plans columns:', cols.join(', '));
|
||||
|
||||
// Create new table with all columns + nullable purchase_order_id
|
||||
const newCols = [...cols];
|
||||
if (!newCols.includes('purchase_order_id')) newCols.push('purchase_order_id');
|
||||
|
||||
const colDefs = newCols.map(c => {
|
||||
if (c === 'id') return 'id INTEGER PRIMARY KEY AUTOINCREMENT';
|
||||
if (c === 'purchase_order_id') return 'purchase_order_id INTEGER DEFAULT 0';
|
||||
if (c === 'created_at' || c === 'updated_at') return `${c} DATETIME DEFAULT CURRENT_TIMESTAMP`;
|
||||
if (c.includes('amount')) return `${c} REAL DEFAULT 0`;
|
||||
return `${c} TEXT DEFAULT ''`;
|
||||
});
|
||||
|
||||
try {
|
||||
await db.query(`CREATE TABLE payment_plans_new (${colDefs.join(', ')})`);
|
||||
// Copy data with column names
|
||||
const colList = cols.join(', ');
|
||||
await db.query(`INSERT INTO payment_plans_new (${colList}) SELECT ${colList} FROM payment_plans`);
|
||||
await db.query(`DROP TABLE payment_plans`);
|
||||
await db.query(`ALTER TABLE payment_plans_new RENAME TO payment_plans`);
|
||||
console.log('OK: payment_plans table fixed');
|
||||
} catch(e) {
|
||||
console.log('ERR:', e.message.substring(0, 150));
|
||||
}
|
||||
|
||||
process.exit();
|
||||
}
|
||||
fix();
|
||||
Reference in New Issue
Block a user