一、 问题:migrate_to_hashed success,但实际未成功
gitlab 14 版本起,全面启用哈希存储,如果从13.X版本直接升级到14.X版本,且其中的传统存储未进行转换的话,将会升级失败,有如下提示:
Legacy storage is no longer supported. Please migrate your data to hashed storage.
Check https://docs.gitlab.com/ee/administration/raketasks/storage.html#migrate-to-hashed-storage for details.
所以我们需要在13.X的最后一个版本,当前13系列最后一个版本为:13.12.12 ,将传统存储转换为哈希存储:
# 存储库迁移
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
但实际上这边遇到了一个奇怪的问题,每次迁移时都提示成功,多次执行都返回如下内容:
Enqueuing migration of 41 projects in batches of 200. Done!
二、解决办法
如果传统存储转HASH显示成功,实际没有成功的情况,可以更新下令牌重新转HASH就可以。
具体如下:
#进入数据库终端 gitlab-rails dbconsole #执行清空命令 UPDATE projects SET runners_token = null, runners_token_encrypted = null; #退出 exit; # 然后重新执行 hash转储命令,校验后发现已经迁移成功! gitlab-rake gitlab:storage:migrate_to_hashed
版权声明:除特殊说明,文章均为博主 久酷 原创文章,转载请注明来源
来源网址:https://www.jiucool.org/gitlab-13-x-to-14-x-hash-problem/
没有涉及,所以看不懂,只能给出四个大字“不明觉厉”