升级顺序:
官网下载地址:
gitlab/gitlab- Packages · packages.gitlab.com
备份所在目录:
/var/opt/gitlab/backups/
特别注意:
13.12.15 -> 14.0.12 有一些字段变化,升级完毕之后需要根据提示执行一些命令才能使用。
升级后会提示执行这6条命令,可以开多个窗口同时执行。
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,events,id,'[["id"]\, ["id_convert_to_bigint"]]']
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_builds,id,'[["id"\, "stage_id"]\, ["id_convert_to_bigint"\, "stage_id_convert_to_bigint"]]']
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_job_artifacts,id,'[["id"\, "job_id"]\, ["id_convert_to_bigint"\, "job_id_convert_to_bigint"]]']
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_stages,id,'[["id"]\, ["id_convert_to_bigint"]]']
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,ci_builds_metadata,id,'[["id"]\, ["id_convert_to_bigint"]]']
gitlab-rake gitlab:background_migrations:finalize[CopyColumnUsingBackgroundMigrationJob,push_event_payloads,event_id,'[["event_id"]\, ["event_id_convert_to_bigint"]]']
注意事项:
- 备份/etc/gitlab目录。
- 按照官网顺序升级
- 升级的时候gitlab需要是启动的状态
- 每次升级完毕之后都执行一下,gitlab-ctl reconfigure ,虽然有的安装完了会自动执行,最后手动再来一次,没坏处。
-
gitlab-rake db:migrate:status 数据库检查都是up后再进行下一次升级
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看当前版本号
/opt/gitlab/bin/gitlab-rake gitlab:backup:create #建议升一个版本,备份一次。
cp -r /etc/gitlab /data/backups
gitlab-ctl reconfigure #重新加载配置文件
gitlab-ctl status #确保服务都是启动的
gitlab-rake db:migrate:status #确保数据库目前是没问题的,没有down。
cd /opt/software/ #我下载的包都在这里
yum localinstall gitlab-ce-x.x.x-ce.0.el7.x86_64.rpm #开始升级,最后提示升级成功之后再进行下面的操作,没成功就根据提示排错。
gitlab-ctl reconfigure #重新加载配置文件,升级完版本后会新增一些字段什么的,有一些变化,不重载不会生效
gitlab-ctl status #确保服务都是启动的,如果有没启动的,gitlab-ctl restart重启一下
gitlab-rake db:migrate:status #确保数据库目前是没问题的,没有down,如果有down,先reconfigure,然后再执行“gitlab-rake db:migrate”,等待结束之后再执行:status看看是不是都up了。
页面访问测试,如果是502,等待一会,如果是500,等待1分钟,如果还是500,恭喜你,出问题了。
一次版本没问题之后,开始升级下一个版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #确保当前版本是刚升级过来的
gitlab-ctl status #确保服务都是启动的
gitlab-rake db:migrate:status #确保数据库目前是没问题的,没有down。
/opt/gitlab/bin/gitlab-rake gitlab:backup:create #开始备份,虽然耗时间,但是稳妥。
cd /opt/software/
yum localinstall gitlab-ce-x.x.x-ce.0.el7.x86_64.rpm #第二次升级
继续升级的话步骤跟上面的一样,reconfigure, :status。。。。。
降级
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION #查看当前版本号
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-x.x.x-ce.0.el7.x86_64.rpm/download.rpm -O gitlab-ce-x.x.x-ee.0.el7.x86_64.rpm #下载降级版本,降级也需要一个一个降
gitlab-ctl stop #停止服务,降级可以停服务
yum remove gitlab-ee #卸载当前版本
yum localinstall gitlab-ce-x.x.x-ee.0.el7.x86_64.rpm #安装降级版本
gitlab-ctl reconfigure #重载一下配置
gitlab-rake db:migrate:status #检查数据库是否都是up了
gitlab-ctl status #检查组件是否都是run,如果不是gitlab-ctl start启动一下
gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/backups/xxxxx-ce #通常没问题情况下数据不用动,但是还是说一下恢复备份,xxxx-ce_gitlab_backup.tar,填写_gitlab_backup.tar之前的内容。 恢复的过程中会有交互提示是否删除现有数据,需要谨记,恢复数据的版本和当前版本需要一致。
如果恢复失败了,提示删库没权限什么的,
在有备份的情况下,
在有备份的情况下,
在有备份的情况下,参考下面做法:
cd /vat/opt/gitlab
mv postgresql postgresql.bak #是mv,不是rm
mkdir postgresql
gitlab-ctl reconfigure
gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/backups/x.x.x.x-ce