关于Gitlab10迁移用户

因为已有的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上通过扮演角色的方法测试了下登录,暂时没发现什么问题。

### GitLab 用户迁移的方法和步骤 #### 准备工作 为了确保用户迁移过程顺利,在开始之前需确认源GitLab实例和目标GitLab实例均已正常运行并完成必要的备份操作。这有助于防止意外情况发生时能够快速恢复环境。 #### 迁移前注意事项 由于用户的个人信息、权限设置以及SSH密钥等内容较为敏感,因此在执行具体的操作流程之前应当仔细阅读官方文档中的安全指导原则[^1]。对于具有复杂架构的企业级部署方案来说,还应该特别关注那些针对特殊需求定制的功能模块是否会受到影响。 #### 数据导出 通过API接口可以实现自动化批量处理账户信息的任务。利用`GET /admin/users`请求获取所有注册成员列表,并保存至本地文件系统中作为后续导入工作的依据。此外还可以考虑调用其他相关联的服务端点来收集更多辅助资料,比如团队协作关系和个人偏好设定等附加属性[^2]。 ```bash curl --header "PRIVATE-TOKEN: <your_access_token>" "https://source.gitlab.com/api/v4/admin/users" ``` #### 创建新账号 前往目的站点创建对应数量的新用户实体。如果两个平台之间存在差异,则可能需要手动调整部分字段以匹配新的结构布局;也可以编写脚本来简化这一重复劳动的过程。务必保证用户名唯一性以免造成混淆冲突现象的发生。 #### 导入历史记录 借助于先前准备好的JSON格式化文本串流,逐条解析其中包含的关键要素并通过POST方式提交给远程服务器上的相应资源路径下。注意这里涉及到密码重置邮件发送机制,所以最好提前通知相关人员留意查收验证链接以便及时激活各自的身份凭证[^3]。 ```json { "email": "example@example.com", "password": "<secure_password>", "username": "unique_username", ... } ``` ```bash for user in $(cat users.json); do curl --request POST \ --data "$user" \ --header "PRIVATE-TOKEN: <your_access_token>" \ https://target.gitlab.com/api/v4/admin/users; done ``` #### 同步关联对象 除了主体之外还有许多依附其上或相互间建立联系的小部件也需要同步转移过去。例如私有仓库访问权、议题评论区留言痕迹之类的细碎事项都不可遗漏掉。这部分工作往往比较繁琐耗时较长,建议采用增量更新策略逐步推进直至完全一致为止[^4]。 #### 验证完整性 最后一步就是进行全面细致地审查核对整个转换后的状态是否符合预期效果。随机抽取若干样本进行测试登录尝试,检查各项功能按钮能否正常使用,浏览页面布局样式有没有明显偏差等问题。一旦发现问题立即回滚至上一版本重新排查原因所在直到最终达到满意程度结束本次作业。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值