从 gogos 迁移到 gitea

官方支持文档:https://docs.gitea.io/zh-cn/upgrade-from-gogs/

0、一开始因为 gogos 很轻量,部署很方便选择了它,但是因为最近 gogos 已经有段时间不更新了,使用过程中发现很多想要功能都没有,用起来很不方便。最近发现还有 gitea 这么个项目,是 gogos 的分支,更新一直很活跃,并且还支持从 gogos 迁移,所以准备更换一下。但我使用的 gogos 版本:0.11.86.0130,并不是官方支持的迁移版本,所以迁移过程似乎有些曲折。

1、写此文章时,最新的 gitea 版本为 1.12.1,该版本似乎以及不支持从 gogos 迁移了,迁移需要先使用旧版本(好像要:1.6.4,不过似乎只要是低于1.12 的都可以)迁移完成,再使用该版本。

2、官方是支持 0.9 以下版本,0.11 已经不能顺利的迁移过来了,基本都是数据库的问题,所以迁移过程中,报错信息会具体指出缺少了哪个表,缺少了哪个字段,手动打开数据库补上就可以了。

3、开始迁移以后,一定不要再运行 gogos 了,因为再次运行 gogos 可能会把数据库搞乱,运行 gogos 后再运行 gitea 会导致重新进行迁移,会遇到很多问题(都是泪/(ㄒoㄒ)/~~),可以考虑做个备份移到其它地方,以免手欠。

4、迁移完成后,可能打开任何项目都是 404 页面,应该是迁移过程中执行的不完整,在官方 issue 里有一个类似问题的解决方案,我试了下很管用:

https://github.com/go-gitea/gitea/issues/2906

insert into repo_unit ("repo_id", "type", "index", "config") 
select repository.id, types.*, '{}' from repository
left join repo_unit on repository.id=repo_id 
left join (
  select 1,1
  UNION ALL select 2,2
  UNION ALL select 3,3
  UNION ALL select 4,4
  UNION ALL select 5,5) as types on (1=1)
where repo_id is null;
直接在数据库里执行即可,遇到同样问题的可以试试,记得执行前先备份一下数据。

猜你喜欢

转载自www.cnblogs.com/xwgli/p/13178223.html