备份:修复前完整项目快照 2026-04-19
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const path = require('path');
|
||||
|
||||
const dbPath = path.join(__dirname, 'company_finance.db');
|
||||
const db = new sqlite3.Database(dbPath);
|
||||
|
||||
console.log('从备份表恢复商品数据...');
|
||||
|
||||
// 检查products_backup表是否存在
|
||||
db.get("SELECT name FROM sqlite_master WHERE type='table' AND name='products_backup'", (err, row) => {
|
||||
if (err) {
|
||||
console.error('检查备份表失败:', err.message);
|
||||
db.close();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!row) {
|
||||
console.log('备份表不存在,无法恢复数据');
|
||||
db.close();
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查备份表中的数据量
|
||||
db.get('SELECT COUNT(*) as count FROM products_backup', (err, row) => {
|
||||
if (err) {
|
||||
console.error('检查备份数据失败:', err.message);
|
||||
db.close();
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`备份表中有 ${row.count} 条商品数据`);
|
||||
|
||||
if (row.count > 0) {
|
||||
console.log('开始从备份表恢复数据...');
|
||||
|
||||
// 从备份表恢复数据到主表
|
||||
db.run(`
|
||||
INSERT INTO products (
|
||||
name, model, category_id, category_name,
|
||||
unit, cost_price, price, brand,
|
||||
specification, source, remark, stock_quantity,
|
||||
stock_warning, status, created_at, updated_at
|
||||
) SELECT
|
||||
name, model, category_id, category_name,
|
||||
unit, cost_price, price, brand,
|
||||
specification, source, remark, stock_quantity,
|
||||
stock_warning, status, created_at, updated_at
|
||||
FROM products_backup
|
||||
`, function(err) {
|
||||
if (err) {
|
||||
console.error('恢复数据失败:', err.message);
|
||||
db.close();
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`成功恢复 ${this.changes} 条商品数据`);
|
||||
|
||||
// 验证恢复结果
|
||||
db.get('SELECT COUNT(*) as count FROM products', (err, row) => {
|
||||
if (err) {
|
||||
console.error('验证失败:', err.message);
|
||||
} else {
|
||||
console.log(`恢复后商品表中有 ${row.count} 条数据`);
|
||||
}
|
||||
db.close();
|
||||
});
|
||||
});
|
||||
} else {
|
||||
console.log('备份表为空,无法恢复数据');
|
||||
db.close();
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user