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

在升级GitLab从13.X到14.X时,若未将传统存储转换为哈希存储,升级会失败。解决方案包括通过`gitlab-rake`命令进行迁移,并在遇到迁移成功但实际上未完成的情况时,进入数据库终端清除项目令牌后再重新迁移。确保所有迁移命令执行成功,以避免升级失败。
摘要由CSDN通过智能技术生成

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值