fix: validate config.db is file not directory (#586)

修复 config.db 验证逻辑,处理误创建为目录的情况:
- 检测 config.db 是否为目录,如果是则删除并重建为文件
- 保留已存在的数据库文件不受影响
- 修复 Docker volume 挂载可能导致的目录创建问题

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

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Sue
2025-11-06 10:38:53 +08:00
committed by GitHub
parent ed737e08d6
commit 7edc636d3f

View File

@@ -117,12 +117,21 @@ read_env_vars() {
# Validation: Database File (config.db)
# ------------------------------------------------------------------------
check_database() {
if [ ! -f "config.db" ]; then
if [ -d "config.db" ]; then
# 如果存在的是目录,删除它
print_warning "config.db 是目录而非文件,正在删除目录..."
rm -rf config.db
print_info "✓ 已删除目录,现在创建文件..."
touch config.db
print_success "✓ 已创建空数据库文件,系统将在启动时初始化"
elif [ ! -f "config.db" ]; then
# 如果不存在文件,创建它
print_warning "数据库文件不存在,创建空数据库文件..."
# 创建空文件以避免Docker创建目录
touch config.db
print_info "✓ 已创建空数据库文件,系统将在启动时初始化"
else
# 文件存在
print_success "数据库文件存在"
fi
}