GitLab_升级导致部分项目无法转换为哈希存储

经过

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
测试人员发现项目无法写入

使用账号尝试后 排除账号权限问题,发现多个项目都有该问题

联想到最近对Git Lab进行过升级操作,升级过程中有对传统存储项目转为哈希存储操作

通过命令检查确实有30个项目还是处于传统存储模式,尝试再次转换 发现还是有20个项目无法转换

通过命令尝试将20个项目模式更改为可写,发现项目可以写入 更改操作,尝试转换模式 发现还是无法转换

尝试重置20个项目的更新令牌,重置完后 还是无法转换模式

准备删除该20个项目,在新版本的gitlab上新建该项目 再从备份中导入项目代码

20个项目转换完成,再次查看发现无传统存储项目

相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 存储库迁移
gitlab-rake gitlab:storage:migrate_to_hashed

# 执行成功后,再次执行,会提示如下内容:
#There are no projects requiring storage migration. Nothing to do!


# 全部迁移成功,以下命令查看所列出的项目总数与页面的理应一致
gitlab-rake gitlab:storage:hashed_projects


# 查看,全部迁移成功以下两条命令应该为 0
gitlab-rake gitlab:storage:legacy_projects
gitlab-rake gitlab:storage:legacy_attachments

# 列出传统存储的项目以及附件
gitlab-rake gitlab:storage:list_legacy_projects
gitlab-rake gitlab:storage:list_legacy_attachments

——————————————————————————————————————————————————————————
#如果传统存储转HASH显示成功,实际没有成功的情况,可以更新下令牌重新转HASH就可以。
#进入数据库终端
gitlab-rails dbconsole
gitlab-rails dbconsole --database=main

#执行清空命令
UPDATE projects SET runners_token = null, runners_token_encrypted = null;

#退出
exit;

# 然后重新执行 hash转储命令,校验后发现已经迁移成功!

gitlab-rake gitlab:storage:migrate_to_hashed

参考文档

https://www.jianshu.com/p/768809e8e542

https://www.jiucool.org/gitlab-13-x-to-14-x-hash-problem/

https://gitlab.com/gitlab-org/gitlab/-/issues/341210

https://docs.gitlab.com/ee/administration/raketasks/storage.html#migrate-to-hashed-storage

https://blog.csdn.net/qq_47714288/article/details/119949550

https://forum.gitlab.com/t/the-repository-is-temporarily-read-only-please-try-again-later/43117

https://docs.gitlab.com/ee/administration/raketasks/storage.html#on-legacy-storage


GitLab_升级导致部分项目无法转换为哈希存储
https://imwang77.github.io/2021/12/09/GitLab_升级导致部分项目无法转换为哈希存储/
作者
imwang77
发布于
2021年12月9日
更新于
2021年12月9日
许可协议