版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/moxiaomomo/article/details/83412173
因为已有的gitlab服务有些问题,现在在新的服务器上新搭建了一个gitlab11服务。
暂时不需要迁移项目相关内容,只想把所有已有的账号给挪过去。
一时半会没找到如何只迁移gitlab上的账号(项目,issue什么的不作迁移)的合适方法,故自己先用手工的方法解决了。
该方法未经严格验证,请谨慎参考
(1)把旧的gitlab上postgresql的相关表给导了出来,导为csv格式文件,一共三个表:
users
namespaces
routes
(2) 把users
的csv文件里和root(admin)账号的记录行去掉,因为新的gitlab上已经创建了root用户;
(3) 如果两个gitlab之间的版本不同,还需要考虑字段兼容的问题,我是把不相同的字段那一列整个去掉即可(因为没涉及到必要的字段);
(4) 把routes
及namespaces
的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上通过扮演角色
的方法测试了下登录,暂时没发现什么问题。