Gitlab迁移到Gitea

上一篇文章提到,Gitea 是替代 Gitlab 的一个好选择,那么如果已经有了 Gitlab,如何迁移到 Gitea 呢?风险最低的方案可能是让用户自行迁移,但问题是迁移会比较慢,会有遗漏,并且会丢失 PR,Issue。另外可以找一些迁移工具。但是目前应该还没有支持完全迁移的工具。本文介绍使用 gitlab_to_gitea 迁移的过程。

迁移准备

  • 迁移工具: https://github.com/h44z/gitlab_to_gitea
  • 限制:需要 gitlab api 版本为 v4 ,gitlab 9 以上才支持,低版本应先升级。我安装的版本为 8.6.4
  • 升级 gitlab ,参考:https://blog.csdn.net/zhoumh1988/article/details/82849783

Gitlab 的 yum 源

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

迁移工具的功能和限制:

This script support migrating the following data:

- Repositories & Wiki (fork status is lost)
- Milestones
- Labels
- Issues (no comments)
- Users (no profile pictures)
- Groups
- Public SSH keys

迁移过程

非默认配置,可能会丢数据,因此最好找台新机器,搭建一个和待升级版本一致的全新的gitlab,不更改任何配置,然后升级到新版(又或许是因为centos 6.6的某些问题?centos 7.5上没问题 | 全新搭建gitlab验证应该是系统版本问题 | 可以在本地虚拟机7.5系统上升级到9.0.0之后备份一下,然后在6.6系统上新搭 9.0.0,恢复备份即可)

  1. 升级到 8.17.8. 需要执行 chmod -R 2770 /var/opt/gitlab/git-data 然后 gitlab-ctl reconfigure
  2. 升级到 9.0.0,之后就有 v4 api了

然后就是使用迁移工具执行迁移,需要注意以下几点:

  • 需要 python 3.6 或以上版本
  • pygitea需要安装作者定制的支持 json 参数的版本 pip install git+https://github.com/h44z/pygitea
  • 需要配置 gitlab 管理员用户
  • 脚本似乎是通过 远程仓库 迁移的,需要 gitlab 搭建在 gitea 可以访问到的地方,不能用本地虚拟机。
  • 存在的问题:迁移后的仓库都变成私有库了

附录

gitlab 常用命令

gitlab-rake gitlab:backup:create
gitlab-rake gitlab:backup:restore BACKUP=备份版本号
gitlab-rake db:migrate:status

参考资料

1. https://github.com/h44z/gitlab_to_gitea

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注