从2.16 数据库迁移到notedb 报错如下
[xxx] [Index-Batch-xxx] ERROR com.google.gerrit.index.Schema : error getting field delta of ChangeData{Change{xxx (xxx), dest=xxx, status=M}}
com.google.gwtorm.server.OrmException: org.eclipse.jgit.errors.MissingObjectException: Missing unknown xxx
发现一种另类升级办法
1.安装jdk17
[root@localhost ~]
[root@localhost java]
[root@localhost java]
[root@localhost java]
[root@localhost java]
[root@localhost java]
[root@localhost java]
[root@localhost java]
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export JAVA_HOME=/usr/local/java/jdk-11.0.21
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:/usr/local/git-2.9.5/bin
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JRE_HOME}/lib
[root@localhost java]
[root@localhost java]
openjdk 17.0.9 2023-10-17
2.安装最新版本的gerrit3.9.1
新建一个有家目录的gerrit用户,切换到这个用户然后执行
java -jar gerrit-3.9.1.war init -d /home/gerrit/gerrit391
3.旧迁移合并数据库
[gerrit@localhost ~]$ /usr/local/java/jdk1.8.0_202/bin/java -jar gerrit2.16.17_site/bin/gerrit.war migrate-to-note-db --threads 10 -d gerrit2.16.17_site --reindex false 2>&1 | tee ./migrate-to-notedb.txt
[gerrit@localhost ~]$ /usr/local/java/jdk1.8.0_202/bin/java -jar /home/gerrit/gerrit2.16.17_site/bin/gerrit.war reindex -d gerrit2.16.17_site --threads 10 2>&1 | tee reindex-to-2.16.28-migrate.txt
4.将旧gerrit git 下的 All 开头项目 覆盖到新的gerrit git目录下
5.重新初始化安装新gerrit
java -jar gerrit-3.9.1.war init -d /home/gerrit/gerrit391
6.其他项目的迁移
你只需要把其他项目移动到新的git目录下就好了,重启gerrit,或者重新 init gerrit,就ok