feat(install): 添加数据库自动迁移功能
更新和修复模式会自动检测并迁移旧数据库: - 检测 backend/ftp-manager.db(旧路径) - 自动迁移到 backend/data/database.db(新路径) - 同时迁移 journal/wal/shm 文件 - 新旧数据库同时存在时警告用户 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
44
install.sh
44
install.sh
@@ -3862,6 +3862,47 @@ update_patch_env() {
|
|||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 迁移旧数据库文件
|
||||||
|
update_migrate_database() {
|
||||||
|
print_step "检查数据库迁移..."
|
||||||
|
|
||||||
|
local OLD_DB="${PROJECT_DIR}/backend/ftp-manager.db"
|
||||||
|
local NEW_DB_DIR="${PROJECT_DIR}/backend/data"
|
||||||
|
local NEW_DB="${NEW_DB_DIR}/database.db"
|
||||||
|
|
||||||
|
# 如果旧数据库存在且新数据库不存在,执行迁移
|
||||||
|
if [[ -f "$OLD_DB" ]]; then
|
||||||
|
if [[ ! -f "$NEW_DB" ]]; then
|
||||||
|
# 创建新目录
|
||||||
|
mkdir -p "$NEW_DB_DIR"
|
||||||
|
|
||||||
|
# 迁移数据库
|
||||||
|
mv "$OLD_DB" "$NEW_DB"
|
||||||
|
print_success "数据库已迁移: ftp-manager.db -> data/database.db"
|
||||||
|
|
||||||
|
# 同时迁移 journal 文件(如果存在)
|
||||||
|
if [[ -f "${OLD_DB}-journal" ]]; then
|
||||||
|
mv "${OLD_DB}-journal" "${NEW_DB}-journal"
|
||||||
|
fi
|
||||||
|
if [[ -f "${OLD_DB}-wal" ]]; then
|
||||||
|
mv "${OLD_DB}-wal" "${NEW_DB}-wal"
|
||||||
|
fi
|
||||||
|
if [[ -f "${OLD_DB}-shm" ]]; then
|
||||||
|
mv "${OLD_DB}-shm" "${NEW_DB}-shm"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# 新旧数据库都存在,警告用户
|
||||||
|
print_warning "检测到新旧数据库同时存在!"
|
||||||
|
print_warning " 旧: ${OLD_DB}"
|
||||||
|
print_warning " 新: ${NEW_DB}"
|
||||||
|
print_warning "请手动确认数据后删除旧数据库文件"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
print_info "无需迁移数据库"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
update_main() {
|
update_main() {
|
||||||
# 检查root权限
|
# 检查root权限
|
||||||
check_root
|
check_root
|
||||||
@@ -4373,6 +4414,9 @@ repair_main() {
|
|||||||
# 读取现有配置
|
# 读取现有配置
|
||||||
repair_load_existing_config
|
repair_load_existing_config
|
||||||
|
|
||||||
|
# 迁移数据库(如果需要)
|
||||||
|
update_migrate_database
|
||||||
|
|
||||||
# 补充缺失的环境配置(如 TRUST_PROXY, ENFORCE_HTTPS 等)
|
# 补充缺失的环境配置(如 TRUST_PROXY, ENFORCE_HTTPS 等)
|
||||||
update_patch_env
|
update_patch_env
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user