Repository storage Rake tasks

Repository storage Rake tasks

这是 Rake 任务的集合,可帮助您列出现有项目及其附件并将其迁移到新的 ,GitLab 用于组织 Git 数据.

以下 Rake 任务将列出旧版存储和哈希存储上可用的项目和附件.

要使用旧式存储获得摘要,然后列出项目及其附件:

  • 源码安装

    1. sudo -u git -H bundle exec rake gitlab:storage:legacy_projects RAILS_ENV=production
    2. sudo -u git -H bundle exec rake gitlab:storage:list_legacy_projects RAILS_ENV=production
    3. # Attachments
    4. sudo -u git -H bundle exec rake gitlab:storage:legacy_attachments RAILS_ENV=production
    5. sudo -u git -H bundle exec rake gitlab:storage:list_legacy_attachments RAILS_ENV=production

On hashed storage

要使用散列存储来获得项目及其附件的摘要和列表,请执行以下操作:

  • 全部安装

    1. # Projects
    2. sudo gitlab-rake gitlab:storage:hashed_projects
    3. # Attachments
    4. sudo gitlab-rake gitlab:storage:hashed_attachments
    5. sudo gitlab-rake gitlab:storage:list_hashed_attachments
  • 源码安装

此任务将安排您所有与之关联的现有项目和附件,以迁移到Hashed存储类型:

  • 全部安装

    1. sudo gitlab-rake gitlab:storage:migrate_to_hashed
  • 源码安装

    1. sudo -u git -H bundle exec rake gitlab:storage:migrate_to_hashed RAILS_ENV=production

如果您有任何现有的集成,则可能需要先进行少量部署以进行验证. 您可以通过使用环境变量ID_FROMID_TO在操作中指定 ID 范围来 . 例如,要在 Omnibus GitLab 安装中将项目 ID 限制为项目 ID 50 到 100:

您可以在 管理区域>监视>后台作业页面. 您可以观看一个特定的队列,以了解完成需要多长时间: hashed_storage:hashed_storage_project_migrate .

达到零后,您可以通过运行以下命令确认每个项目都已迁移. 如果发现有必要,则可以再次运行此迁移脚本以计划丢失的项目.

任何错误或警告将记录在 Sidekiq 的日志文件中.

注意:如果启用了” ,则成功迁移的每个项目都会生成一个事件,以复制任何辅助节点上的更改.

不建议使用:在 GitLab 13.0 中,默认情况下启用了哈希存储 ,并且不建议使用旧存储. 在 GitLab 14.0 中将删除对旧存储的支持. 如果您使用的是 GitLab 13.0 及更高版本,则无法将新项目切换到旧版存储. 在管理区域中的哈希存储和旧存储之间进行选择的选项已被禁用.

This task will schedule all your existing projects and associated attachments to be rolled back to the legacy storage type.

  • 全部安装

    1. sudo gitlab-rake gitlab:storage:rollback_to_legacy

如果您有任何现有的集成,则可能需要先进行少量回滚以进行验证. 您可以通过使用环境变量ID_FROMID_TO在操作中指定 ID 范围来ID_TO . 例如,要在 Omnibus GitLab 安装中将项目 ID 限制为项目 ID 50 到 100:

您可以在 管理区域>监视>后台作业页面. 在” 队列”选项卡上,您可以查看hashed_storage:hashed_storage_project_rollback队列以查看该过程将花费多长时间.

达到零后,您可以通过以下命令确认每个项目都已回滚. 如果某些项目没有回滚,则可以再次运行此回滚脚本以安排进一步的回滚. 任何错误或警告将记录在 Sidekiq 的日志文件中.

如果您具有地理设置,则回滚将不会自动反映在辅助节点上. 您可能需要等待回填操作才能启动,并手动从特殊的文件夹中删除剩余的存储库.