diff --git a/install.sh b/install.sh index d056ac4..513a9a1 100644 --- a/install.sh +++ b/install.sh @@ -3862,6 +3862,47 @@ update_patch_env() { 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() { # 检查root权限 check_root @@ -4373,6 +4414,9 @@ repair_main() { # 读取现有配置 repair_load_existing_config + # 迁移数据库(如果需要) + update_migrate_database + # 补充缺失的环境配置(如 TRUST_PROXY, ENFORCE_HTTPS 等) update_patch_env