gitlab 13.x 升级至 14.x 哈希存储转换问题

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

你可能感兴趣的:(运维)