Files
WYF-koubo/scripts/fix-cover-templates.cjs
2026-06-19 18:45:55 +08:00

94 lines
2.9 KiB
JavaScript

#!/usr/bin/env node
const Database = require('better-sqlite3');
const fs = require('fs');
const path = require('path');
function fixCoverTemplates() {
console.log('🔧 开始修复封面模板...\n');
try {
let dbPath;
const possiblePaths = [
path.join(__dirname, '../userData/data.db'),
path.join(__dirname, '../data.db'),
'C:\\aigcpanel-main\\dist-release\\win-unpacked\\data\\data\\database.db',
path.join(process.env.APPDATA || process.env.HOME, 'zhenqianba/data.db'),
];
for (const tryPath of possiblePaths) {
if (fs.existsSync(tryPath)) {
dbPath = tryPath;
console.log(`✅ 找到数据库: ${dbPath}\n`);
break;
}
}
if (!dbPath) {
console.error('❌ 未找到数据库文件');
process.exit(1);
}
const db = new Database(dbPath);
const correctSystemIds = [
'485183be-6eed-4eae-b74a-8591f08b69fa',
'6404718a-1b1c-4148-9807-ad3c57a53e0c',
'705fa010-5bf3-4041-b624-0fd364bea5ad',
'8f17c467-c69c-45b2-8011-94a6c3071d16',
'1rv2nxmt9td-mkdite60',
'4ndc1cf5lwo-mkdite61',
'sjohrqfff7-mkdite61',
'rxfnphz2eb-mkdite61'
];
console.log('1️⃣ 查询所有模板...');
const allTemplates = db.prepare(`
SELECT id, name, is_system FROM cover_templates ORDER BY created_at ASC
`).all();
console.log(` 找到 ${allTemplates.length} 个模板\n`);
const toFix = allTemplates.filter(t => t.is_system === 1 && !correctSystemIds.includes(t.id));
if (toFix.length === 0) {
console.log('✅ 数据库已正确,无需修复\n');
db.close();
process.exit(0);
}
console.log(`2️⃣ 发现 ${toFix.length} 个错误的系统模板:\n`);
toFix.forEach(t => {
console.log(` ⚠️ "${t.name}" (ID: ${t.id})`);
});
console.log('\n3️⃣ 修复中...\n');
toFix.forEach(template => {
db.prepare(`UPDATE cover_templates SET is_system = 0 WHERE id = ?`).run(template.id);
console.log(` ✅ 已修复: "${template.name}"`);
});
console.log('\n4️⃣ 验证结果...');
const systemTemplates = db.prepare(`
SELECT id, name FROM cover_templates WHERE is_system = 1
`).all();
console.log(` 系统模板数量: ${systemTemplates.length}/8`);
systemTemplates.forEach((t, i) => {
console.log(` ${i+1}. ${t.name}`);
});
console.log('\n✨ 修复完成!');
console.log('下一步:重启应用后点击"导出全部"\n');
db.close();
process.exit(0);
} catch (error) {
console.error('❌ 修复失败:', error.message);
process.exit(1);
}
}
fixCoverTemplates();