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 Database = require('better-sqlite3');
|
||||||
const bcrypt = require('bcryptjs');
|
const bcrypt = require('bcryptjs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const fs = require('fs');
|
||||||
const crypto = require('crypto');
|
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');
|
db.pragma('foreign_keys = ON');
|
||||||
|
|||||||
Reference in New Issue
Block a user