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:
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user