Gitlab 数据迁移

Gitlab 数据迁移

对 gitlab 数据进行迁移之前要保证两个gitlab服务器的版本一直,否则可能会迁移失败

查看 gitlab 服务器版本:

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

原始仓库

1. 代码仓库数据

// 1. gitlab 仓库的数据都在这个目录下,存储的方式是按照 Project ID 的hash值进行保存的
cd /var/opt/gitlab/git-data/repositories

tree -L 3
.
├── +gitaly
│   ├── state
│   │   └── @hashed
│   │       ├── 6b
│   │       └── d4
│   └── tmp
└── @hashed
    ├── 6b
    │   └── 86
    │       ├── 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.git
    │       └── 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b.wiki.git
    └── d4
        └── 73
            ├── d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.git
            └── d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35.wiki.git

这里就是仓库的 Project ID:

image-20211223143443364

// 执行下面的命令查看 ID 的哈希值
echo -n 1 | sha256sum
6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b 

根据其哈希值可以判断是哪个仓库的数据。

2. 数据打包

// 2. 对需要的仓库数据进行打包
pwd 
/var/opt/gitlab/git-data/repositories

tar czvf data.tar.gz *

// 3. 发送到新仓库
scp data.tar.gz root@host:/var/opt/gitlab/git-data/

目标仓库

// 1. 进入仓库数据目录
cd /var/opt/gitlab/git-data

// 2. 解压原始仓库的数据
mkdir /var/opt/gitlab/git-data/repository-import/new -p
tar xf data.tar.gz -C /var/opt/gitlab/git-data/repository-import/new/

// 3. 更改目录归属者,设置归属者为git用户
chown -R git.git  /var/opt/gitlab/git-data/repository-import/

// 4. 迁移数据
gitlab-rake gitlab:import:repos['/var/opt/gitlab/git-data/repository-import/']

最后刷新 Web 端就可以看到迁移后的仓库了(登录 root 用户查看)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值