关于Gitlab10迁移用户

本文分享了一种在不迁移项目内容的情况下,仅迁移GitLab账号的方法。通过导出并处理旧GitLab的用户、命名空间和路由表,再导入到新GitLab,实现了账号的迁移。

因为已有的gitlab服务有些问题,现在在新的服务器上新搭建了一个gitlab11服务。
暂时不需要迁移项目相关内容,只想把所有已有的账号给挪过去。
一时半会没找到如何只迁移gitlab上的账号(项目,issue什么的不作迁移)的合适方法,故自己先用手工的方法解决了。
该方法未经严格验证,请谨慎参考
(1)把旧的gitlab上postgresql的相关表给导了出来,导为csv格式文件,一共三个表:

users
namespaces
routes

(2) 把users的csv文件里和root(admin)账号的记录行去掉,因为新的gitlab上已经创建了root用户;
(3) 如果两个gitlab之间的版本不同,还需要考虑字段兼容的问题,我是把不相同的字段那一列整个去掉即可(因为没涉及到必要的字段);
(4) 把routesnamespaces的csv文件里与账号无关的记录行(比如project什么的)去掉;
(5) 保证routes,namespaces,users这三个表之间的id,owner_id,source_id等关联关系是正确的;

update namespaces as a set owner_id=b.id from users as b where a.name=b.username;
update routes as a set source_id=b.id from namespaces as b where a.name=b.name;

(6)在新的gitlab上,进入postgresql客户端命令行,以COPY … from xx.csv with CSV HEADER的方式将这三个表文件给导了进去
(7) 新gitlab上通过扮演角色的方法测试了下登录,暂时没发现什么问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值