GitLab数据迁移后出现500错误

一、背景        

        去年做GitLab数据迁移时,写过一篇文章《GitLab的备份与还原》。后来发现新创建的项目没问题,但对于迁移过来的项目,修改名称等信息,或者删除该项目时,会出现500错误,以为是系统问题,一直也查到解决办法。

二、原因

        前段时间再次搜索解决办法,终于解决了,在这里记录一下。

        导致这样的原因,了解到是db_key_base参数出现了问题。db_key_base是一个64位随机字符串,它用于为应用程序生成安全的密钥。原先的密钥没复制过来,导致修改原项目时验证无法通过。

三、解决办法

        原先的GitLab早就删除干净了,原先的db_key_base自然也找不回来,只好重置所有的密钥和token。

1、进入数据库控制台

命令行输入:

gitlab-rails dbconsole

需要注意的是,在使用gitlab-rails dbconsole时,请务必非常小心。因为您将直接操作GitLab使用的数据库,所以错误的SQL语句有可能导致数据丢失或损坏。 

2、重置SQL数据库中的Token

 gitlab-psql -d gitlabhq_production

然后依次输入一下命令 :

# 将所有项目的runners_token和runners_token_encrypted字段设置为null。
UPDATE projects SET runners_token = null, runners_token_encrypted = null;

# 将所有命名空间(例如用户或组)的runners_token和runners_token_encrypted字段设置为null。
UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;

# 将GitLab应用程序设置中的runners_registration_token_encrypted字段设置为null。
UPDATE application_settings SET runners_registration_token_encrypted = null;

然后输入\q或者exit退出。

3、重启GitLab

gitlab-ctl restart

至此整个Gitlab已经恢复正常,原先的项目可以改名,也可以删除了。

参考文章:

Gitlab数据迁移&在线升级后出现CI/CD页面500错误问题 | Luck_zy

你可能感兴趣的:(Git,gitlab,Git,Lab数据迁移)