const path = require('path'); const fs = require('fs'); // 数据库文件路径配置 // 在Docker环境中使用 /app/data,本地开发使用项目根目录的data文件夹 let dbPath; if (process.env.DB_PATH) { // 如果设置了环境变量,使用环境变量的路径 dbPath = process.env.DB_PATH; } else if (fs.existsSync('/app/data')) { // Docker容器内,使用/app/data目录 dbPath = '/app/data/proxies.db'; } else { // 本地开发环境,使用项目根目录的data文件夹 const dataDir = path.join(__dirname, '../data'); dbPath = path.join(dataDir, 'proxies.db'); // 确保data目录存在 if (!fs.existsSync(dataDir)) { try { fs.mkdirSync(dataDir, { recursive: true }); } catch (error) { console.warn('无法创建data目录,将使用项目根目录:', error.message); // 如果创建失败,回退到项目根目录 dbPath = path.join(__dirname, '../proxies.db'); } } } console.log(`数据库文件路径: ${dbPath}`); const dbConfig = { development: { dialect: 'sqlite', storage: dbPath } }; module.exports = dbConfig;