fix(database): 读取环境变量DATABASE_PATH而非硬编码路径

之前硬编码为 ftp-manager.db,导致 .env 中的 DATABASE_PATH 无效。

修复:
- 读取 DATABASE_PATH 环境变量
- 默认路径改为 ./data/database.db
- 自动创建数据库目录
- 启动时打印数据库路径便于确认

⚠️ 升级注意:旧用户需要迁移数据库文件:
mv backend/ftp-manager.db backend/data/database.db

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-27 21:07:12 +08:00
parent c411ffac19
commit ab61582487

View File

@@ -1,10 +1,30 @@
// 加载环境变量(确保在 server.js 之前也能读取)
require('dotenv').config();
const Database = require('better-sqlite3');
const bcrypt = require('bcryptjs');
const path = require('path');
const fs = require('fs');
const crypto = require('crypto');
// 数据库路径配置
// 优先使用环境变量 DATABASE_PATH默认为 ./data/database.db
const DEFAULT_DB_PATH = path.join(__dirname, 'data', 'database.db');
const dbPath = process.env.DATABASE_PATH
? path.resolve(__dirname, process.env.DATABASE_PATH)
: DEFAULT_DB_PATH;
// 确保数据库目录存在
const dbDir = path.dirname(dbPath);
if (!fs.existsSync(dbDir)) {
fs.mkdirSync(dbDir, { recursive: true });
console.log(`[数据库] 创建目录: ${dbDir}`);
}
console.log(`[数据库] 路径: ${dbPath}`);
// 创建或连接数据库
const db = new Database(path.join(__dirname, 'ftp-manager.db'));
const db = new Database(dbPath);
// 启用外键约束
db.pragma('foreign_keys = ON');