79 lines
3.0 KiB
JavaScript
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');
|