在私有组中将项目可见性从私有更改为内部导致500错误

本文详细记录了一次在Gitlab中修改项目可见性从私有到内部后出现500错误的排查及修复过程。通过数据库操作解决了因project_features表中project_id为NULL导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两天,有一位同一位同有一个需求,将Gitlab中 Project data-web (visibility: Private)修改为(visibility: internal)。修改完成后导致该项目访问的时候报错500

 

通过查看日志

tail -f  /var/log/gitlab/gitlab-rails/production.log

发现一个关键报错

NoMethodError (undefined method `access_level' for nil:NilClass)

直接通过gitlab数据库操作解决

cat /var/opt/gitlab/gitlab-rails/etc/database.yml

切换到gitlab-psql账号并登录psql

su - gitlab-psql
psql -h /var/opt/gitlab/postgresql -d gitlabhq_production

其中project_idNULLproject_features表中。可以查找出500报错的是哪个库的project_id,得到这个project_id

SELECT id FROM projects WHERE id NOT IN (SELECT project_id AS id FROM project_features WHERE project_id is NOT NULL);

快速错误修复该报错,将查询出来的project_id,插入到project_feature表中即可修复该问题

insert into project_features(project_id,merge_requests_access_level,issues_access_level,wiki_access_level,snippets_access_level,builds_access_level,created_at,updated_at) VALUES(PROJECT_ID,10,10,10,0,10,now(),now());

参考资料

https://gitlab.com/gitlab-org/gitlab-ce/issues/37640#note_39969221

感谢其中的几位大佬!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大锅霍皮久

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值