update.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. # 设置工作目录为脚本所在的目录
  3. cd "$(dirname "$0")" || exit 1
  4. # 引入依赖脚本
  5. source scripts/lib.sh
  6. print_message "Starting panel update..." "开始面板更新..."
  7. print_logo
  8. # 更新代码
  9. print_message "updating Code..." "更新代码..."
  10. git fetch -f && git reset -q --hard origin/master && git pull
  11. # 更新数据库
  12. print_message "Updating database..." "更新数据库..."
  13. php artisan migrate --force
  14. # 如果是演示环境,询问是否重置数据库
  15. if [[ $(grep -E '^APP_ENV=demo' .env) ]]; then
  16. read -p "Reset demo database? [y/N] " -n 1 -r
  17. echo
  18. if [[ $REPLY =~ ^[Yy]$ ]]; then
  19. print_message "Resetting demo database..." "重置演示数据库..."
  20. php artisan migrate:fresh --seed --force
  21. fi
  22. fi
  23. # 优化缓存
  24. print_message "Optimizing application cache..." "优化应用缓存..."
  25. php artisan optimize
  26. # 检查Composer
  27. print_message "Checking Composer..." "检查Composer..."
  28. check_composer
  29. # 执行Composer更新
  30. print_message "Updating packages via Composer..." "通过Composer更新程序包..."
  31. composer update --no-interaction --no-dev --optimize-autoloader
  32. # 设置权限
  33. set_permissions
  34. # 更新旧的队列设置
  35. update_old_queue
  36. # 检查最新的IP数据库文件
  37. print_message "Updating IP database files..." "更新本地IP数据库文件..."
  38. (cd scripts/ && bash download_dbs.sh)
  39. print_message "Panel update completed successfully!" "面板更新完成!"