5.2 KiB
5.2 KiB
Gerrit 升级指南
概述
本指南说明如何将 Gerrit 升级到最新版本(3.13.1),并使用 JDK 17 运行。
当前状态
- ✅ JDK 17 已安装:
/usr/local/java/jdk-17.0.12+7 - ✅ 当前 Gerrit 版本: 3.3.8 或 3.9.0
- 🎯 目标版本: 3.13.1(支持 JDK 17)
升级步骤
方法一:使用升级脚本(推荐)
cd /home/renjianbo/gerrit
./upgrade_gerrit.sh
升级脚本会自动:
- ✅ 验证 JDK 17 安装
- ✅ 停止现有 Gerrit 服务
- ✅ 备份所有数据(Git 仓库、数据库、配置、插件)
- ✅ 下载 Gerrit 3.13.1
- ✅ 升级 Gerrit(保留现有数据)
- ✅ 配置 Gerrit 使用 JDK 17
- ✅ 启动服务
方法二:手动升级
1. 停止 Gerrit 服务
cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh stop
2. 备份数据
cd /home/renjianbo/gerrit_install
BACKUP_DIR="backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p $BACKUP_DIR
# 备份 Git 仓库
cp -r review_site/git $BACKUP_DIR/ 2>/dev/null || true
# 备份数据库
cp -r review_site/db $BACKUP_DIR/ 2>/dev/null || true
# 备份配置
cp -r review_site/etc $BACKUP_DIR/ 2>/dev/null || true
# 备份插件
cp -r review_site/plugins $BACKUP_DIR/ 2>/dev/null || true
3. 下载新版本
cd /home/renjianbo/gerrit_install
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.13.1.war
4. 设置 JDK 17
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
export PATH=$JAVA_HOME/bin:$PATH
# 验证
java -version
5. 升级 Gerrit
cd /home/renjianbo/gerrit_install
java -jar gerrit-3.13.1.war init \
-d review_site \
--batch \
--no-auto-start \
--install-plugin=download-commands \
--install-plugin=replication \
--install-plugin=reviewnotes
6. 配置使用 JDK 17 启动
编辑 review_site/bin/gerrit.sh,在文件开头添加:
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
export PATH=$JAVA_HOME/bin:$PATH
7. 启动服务
cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh start
8. 验证升级
# 检查服务状态
bin/gerrit.sh status
# 查看日志
tail -f logs/error_log
# 访问 Web 界面
# http://101.43.95.130:8080
版本兼容性
| Gerrit 版本 | 最低 JDK 要求 | 推荐 JDK |
|---|---|---|
| 3.3.x | JDK 11 | JDK 11 |
| 3.9.x | JDK 17 | JDK 17 |
| 3.13.x | JDK 17 | JDK 17 |
升级后验证
1. 检查版本
访问 Gerrit Web 界面,在页面底部查看版本号,应该显示 3.13.1。
2. 检查 Java 版本
cd /home/renjianbo/gerrit_install/review_site
ps aux | grep gerrit | grep java
应该看到进程使用 JDK 17。
3. 测试功能
- ✅ 登录 Web 界面
- ✅ 查看项目列表
- ✅ 创建/查看变更
- ✅ SSH 连接测试
回滚(如果需要)
如果升级后出现问题,可以回滚到之前的版本:
# 1. 停止服务
cd /home/renjianbo/gerrit_install/review_site
bin/gerrit.sh stop
# 2. 恢复备份
cd /home/renjianbo/gerrit_install
BACKUP_DIR="backup_YYYYMMDD_HHMMSS" # 替换为实际的备份目录名
# 恢复 Git 仓库
rm -rf review_site/git
cp -r $BACKUP_DIR/git review_site/
# 恢复数据库
rm -rf review_site/db
cp -r $BACKUP_DIR/db review_site/
# 恢复配置
rm -rf review_site/etc
cp -r $BACKUP_DIR/etc review_site/
# 恢复插件
rm -rf review_site/plugins
cp -r $BACKUP_DIR/plugins review_site/ 2>/dev/null || true
# 3. 使用旧版本 war 文件重新初始化
# (使用之前下载的 gerrit-3.3.8.war 或 gerrit-3.9.0.war)
# 4. 启动服务
cd review_site
bin/gerrit.sh start
常见问题
Q: 升级后服务无法启动?
A: 检查日志文件:
tail -f /home/renjianbo/gerrit_install/review_site/logs/error_log
常见原因:
- JDK 版本不匹配
- 端口被占用
- 配置文件错误
Q: 升级后数据丢失?
A: 检查备份目录:
ls -la /home/renjianbo/gerrit_install/backup_*
可以从备份目录恢复数据。
Q: 如何确认使用的是 JDK 17?
A: 运行以下命令:
cd /home/renjianbo/gerrit_install/review_site
ps aux | grep gerrit | grep -o '/[^ ]*java[^ ]*' | head -1 | xargs -I {} {} -version
Q: 升级需要多长时间?
A: 通常需要 2-5 分钟,取决于:
- 网络速度(下载新版本)
- 数据量大小(备份和升级)
- 服务器性能
注意事项
- ⚠️ 备份重要:升级前务必备份所有数据
- ⚠️ 停机时间:升级过程中服务会停止,建议在维护窗口进行
- ⚠️ 测试环境:建议先在测试环境验证升级流程
- ⚠️ 插件兼容性:某些插件可能需要更新以支持新版本
- ⚠️ 配置检查:升级后检查配置文件,确保所有设置正确
相关文件
- 升级脚本:
/home/renjianbo/gerrit/upgrade_gerrit.sh - 安装脚本:
/home/renjianbo/gerrit/install_gerrit.sh - 重新安装脚本:
/home/renjianbo/gerrit/reinstall_gerrit.sh - Gerrit 目录:
/home/renjianbo/gerrit_install/
技术支持
如果遇到问题,可以:
- 查看日志文件
- 检查备份数据
- 参考 Gerrit 官方文档: https://www.gerritcodereview.com/