gitlab当前版本11.11.3 postgreSQL当前版本 9.6.11
11.11.3 -》 12.0.12 -》 12.10.14 -》13.0.14 -》 13.1.11 -》13.8.8 -》13.12.15
-》14.0.12 —》 14.3.6 -》 14.9.5 -》 14.10.5 -》 15.0.5 -》 15.1.6 -》 15.4.6
-》 15.11.13 -》 16.0.X —》 16.1 -》 16.2.X -》 16.3 -》 16.Y.Z
可以参照官方顺序Upgrading GitLab | GitLab
理解:每次更新都是按照每个版本中最大的版本去更新。例如:12.0.12就是12.0.X中最大的版本、12.10.14是12.10.X中最大的版本
1.在升级到GitLab 14.0之前(即在13.12.15时完成升级到12),必须升级到PostgreSQL 12。(实际升级过程,PostgreSQL自动升级了,没有去额外的去操作)
2.所以我们需要在13.X的最后一个版本,当前13系列最后一个版本为:13.12.15 ,将传统存储转换为哈希存储(本人并未去处理哈希存储,依旧更新成功)
如出现该问题可以参考:哈希存储转换问题
https://blog.csdn.net/wjplj/article/details/125908203
1.关闭防火墙 systemctl status firewalld.service(查看防火墙状态命令)
2.验证通用配置 sudo gitlab-rake gitlab:check(这一步很重要可以避免很多问题)
3.GitLab网页验证
4.执行备份操作 --保存的tar文件 在 /var/opt/gitlab/backups
4.1备份命令:(本人并未去备份,因为发现在更新版本时会自己备份数据)
GitLab 12.2以后:gitlab-backup create GitLab
12.1及以前:gitlab-rake gitlab:backup:create
4.2手工备份的文件:(该操作很重要,如果更新出现问题,需要版本回退并恢复数据时,这两个文件必不可少。)
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb
4.3恢复操作(备份和恢复需要相同的GitLab版本):
1.关闭数据库连接服务 gitlab-ctl stop unicorn/puma && gitlab-ctl stop sidekiq (注意gitlab在某个版本之后就不再使用unicorn,而是使用puma)
2.手工恢复gitlab-secrets.json文件与gitlab.rb
3.cd /var/opt/gitlab/backups(进入备份的文件目录下)
4.执行备份命令gitlab-rake gitlab:backup:restore BACKUP=?(?代表备份的文件名,但是只要前面时间戳+版本号那一段)
5.下载目标版本的RPM包
法一:输入命令:wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/?(本人未尝试)
法二:直接去Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror下载。然后上传到服务器。
1.gitlab-ctl stop unicorn/puma
2.gitlab-ctl stop sidekiq
3.gitlab-ctl stop nginx
开始升级:
4.rpm -Uvh gitlab-ce-12.1.17-ce.0.el7.x86_64.rpm (执行该命令需要在放RPM包的目录下)
5.gitlab-ctl reconfigure
6.gitlab-ctl restart
查看postgreSQL版本:/opt/gitlab/embedded/bin/psql --version
查看gitlab版本:cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
1.停止服务 gitlab-ctl stop
2.卸载当前版本
gitlab-ctl uninstall
yum remove gitlab-ce
3.安装旧版本 rpm -ivh gitlab-ce-15.4.5-ce.0.el7.x86_64.rpm(rpm -ivh表示安装 rpm -Uvh表示更新版本)
4.恢复数据 (若需要可以使用一下恢复数据,具体看上面提及的恢复操作)
gitlab-rake gitlab:backup:restore BACKUP=1234567890_2020_11_20_15.4.5
Step 1: 停止GitLab的Web服务
使用以下命令停止GitLab的Web服务:
sudo gitlab-ctl stop unicorn/puma (有些版本使用的是unicorn/有些使用的是puma)
sudo gitlab-ctl stop sidekiq
Step 2: 重置管理员密码
使用以下命令重置管理员密码:
sudo gitlab-rake gitlab:password:reset USERNAME=root
请注意,该命令中的USERNAME参数应替换为您的管理员账号名称。当系统提示您输入新密码时,请输入新的管理员密码。
Step 3: 启动GitLab的Web服务
使用以下命令启动GitLab的Web服务:
sudo gitlab-ctl start unicorn/puma
sudo gitlab-ctl start sidekiq
本人直接版本回退,重新更新。(所以出现该问题可能原因是操作失误)
参考
1.Gitlab升级报错一:rails_migration[gitlab-rails] (gitlab::database_migrations line 51)_gitlab升级失败-CSDN博客
2.数据迁移问题-WinFrom控件库|.net开源控件库|HZHControls官网
1.gitlab从11.11.3升级至13.4.2_gitlab-ctl pg-upgrade -v-CSDN博客
2.GitLab中的备份 - Go语言中文社区
3.Gitlab运维(初级)之Gitlab安装_小仲码还是要敲代码的博客-CSDN博客
4.Linux安装gitlab(yum方式、rpm方式)_旧城ck的博客-CSDN博客
5.Gitlab升级_勇敢的打工人.的博客-CSDN博客
6.gitlab升级_gitlab升级路径_wskr~的博客-CSDN博客
7.从gitlab12.6.4升级到gitlab15.11.7_gitlab版本-CSDN博客
8.GitLab基础:备份与恢复指南_gitlab 恢复备份-CSDN博客
9.gitlab备份与还原:配置文件解读、定时备份、云备份_/etc/gitlab/gitlab.rb_学亮编程手记的博客-CSDN博客10.gitlab 13.x 升级至 14.x 哈希存储转换问题_gitlab-rake gitlab:storage:legacy_projects * found_wjplj的博客-CSDN博客