GitLab 降级安装出现 500 错误,如何解决?
本文分享 GitLab 中文版在降级的过程中出现 500 错误的修复方法。
写在前面
强烈不建议大家自行降级,如果真有降级需求,要么自己能力过硬,要么寻求专业服务【https://dl.gitlab.cn/cm33bsfv】,要不出问题很麻烦!
问题复现过程
我之前自行安装了一个极狐GitLab 私有化部署实例,版本升级到了 17.5.1,由于想尝试一下降级的过程,所以就想降级到 17.0.0 试一下。按照文章 GitLab 如何降级安装中的步骤,降级是成功了,但是访问实例的时候提示 500 错误:
正好界面上提示了 Request ID,拿着 ID 在 gitlab log 目录下搜索了一下:
提示的错误是 Relation has no current order and table has no primary key to be used as default order
。
解决思路
查了一下,大概率是与数据库有关。然后猜测可能是下降的版本也跨版本了,导致数据结构有问题。为了验证猜想,我查了一下,如果从 17.0.0 升级到 17.5.1 的路径。
我在浏览器中打开了 https://gitlab.cn/support/toolbox/upgrade-path 然后,在 current 中选择 17.0.0,target 是 17.5.1,查询了升级路径:
原来,17.0.0 升级到 17.5.1 还不能直接升级,必须先升级到 17.3.6,再升级到 17.5.1。那对于降级应该也是一样了,应该先从 17.5.1 降级到 17.3.6,再降级到 17.0.0。
在按照降级路径之后,最后 500 错误消失,实例访问正常。
总结
通过这次尝试,我得出了以下几点:
- GitLab 不管是升级还是降级,一定要做好准备工作,比如备份数据(要确保降级之后的版本,在之前也做了数据备份)
- 升级、降级都要遵循一定的路径,这个路径一定要清晰,路径的查看可以在极狐GitLab 官网升级路径查看 https://gitlab.cn/support/toolbox/upgrade-path 中获取
- 一定要对升降级过程中遇到的问题有心理准备,遇到问题的可能性比较大(如果自己的 GitLab 了解不深入的情况下)
- 如果是企业内部的平台,在自己没有把握的前提下,不要随意升级、降级,最好把这些交给专业的人员【https://dl.gitlab.cn/cm33bsfv】,因为 GitLab 是个工具,不是目的。这时候可以考虑寻求官方的技术服务支持!