Files
WYF-koubo/scripts/reset-system-templates.cjs
T
2026-06-19 18:45:55 +08:00

79 lines
3.0 KiB
JavaScript

/**
* 清空数据库中的系统模板,让应用重新从配置文件初始化
* 使用方法:node scripts/reset-system-templates.cjs
*/
const path = require('path');
const fs = require('fs');
const os = require('os');
console.log('========================================');
console.log('清空系统模板数据库工具');
console.log('========================================\n');
// 查找数据库文件
const possiblePaths = [
// 开发环境
path.join(__dirname, '../database.db'),
path.join(__dirname, '../dist-release/win-unpacked/data/data/database.db'),
// 用户数据目录
path.join(os.homedir(), 'AppData', 'Roaming', 'aigcpanel', 'database.db'),
path.join(os.homedir(), 'AppData', 'Roaming', 'Electron', 'database.db'),
];
console.log('搜索数据库文件...\n');
let dbPath = null;
for (const tryPath of possiblePaths) {
console.log('尝试路径:', tryPath);
if (fs.existsSync(tryPath)) {
dbPath = tryPath;
console.log('✅ 找到数据库文件!\n');
break;
}
}
if (!dbPath) {
console.error('❌ 未找到数据库文件!');
console.error('\n请手动删除以下位置的 database.db 文件:');
possiblePaths.forEach(p => console.error(' - ' + p));
console.error('\n或提供数据库文件的完整路径作为参数:');
console.error(' node scripts/reset-system-templates.cjs <数据库路径>');
process.exit(1);
}
console.log('找到数据库:', dbPath);
console.log('\n========================================');
console.log('选项1(推荐):直接删除数据库文件');
console.log('========================================');
console.log('');
console.log('最简单的方法是直接删除数据库文件:');
console.log(` rm "${dbPath}"`);
console.log('');
console.log('然后重启应用,它会重新创建数据库并从配置文件初始化。');
console.log('');
console.log('========================================');
console.log('选项2:使用 SQLite 命令行工具');
console.log('========================================');
console.log('');
console.log('如果你安装了 SQLite,可以运行:');
console.log(` sqlite3 "${dbPath}" "DELETE FROM subtitle_templates WHERE is_system = 1;"`);
console.log(` sqlite3 "${dbPath}" "DELETE FROM cover_templates WHERE is_system = 1;"`);
console.log(` sqlite3 "${dbPath}" "DELETE FROM subtitle_styles WHERE is_system = 1;"`);
console.log('');
console.log('然后重启应用。');
console.log('');
console.log('========================================\n');
// 询问用户是否要自动删除
console.log('是否要自动删除数据库文件?(y/n)');
console.log('注意:这会清空所有数据,包括用户创建的模板!');
console.log('建议先备份数据库文件。\n');
// 由于这是自动化脚本,我们只提供信息,不自动执行删除
console.log('💡 建议步骤:');
console.log('1. 关闭应用');
console.log('2. 备份数据库文件(可选)');
console.log(`3. 删除文件: ${dbPath}`);
console.log('4. 重启应用');
console.log('5. 应用会自动从配置文件初始化8个正确的模板\n');