zoukankan      html  css  js  c++  java
  • 从 gogs 迁移到 gitea

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

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

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

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

    3、开始迁移以后,一定不要再运行 gogs 了,因为再次运行 gogs 可能会把数据库搞乱,运行 gogs 后再运行 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;
    直接在数据库里执行即可,遇到同样问题的可以试试,记得执行前先备份一下数据。

    5、还有一个坑,在原来的 repositories 的各个 .git 文件夹中,有一个 hooks 文件夹,里面有两个文件:

    hookspost-receive.dpost-receive

    hookspre-receive.dpre-receive

    这两个保留了 gogs 的 hook,但是 gogs 已经被删除了,路径找不到推送就会报错,gitea 在执行任务时重新创建了一个叫 gitea 的文件,并没有覆盖掉原来 gogs 创建的文件,所以所有 git 库中的这两个文件都需要删除一下(如果不想删除,就不要删除原来的 gogs,不需要运行,有文件存在就行)。

  • 相关阅读:
    通过android XML 创建图形,降低对美工的依赖
    ViewPager学习之仿微信主界面
    Linux学习日志--文件搜索命令
    蓝桥杯 历届试题 小朋友排队 【树状数组】+【逆序数】
    操作系统——IO管理
    Mac和PC在工作中管理的对比(5)
    虚拟地址空间分配
    UVA 624 CD(DP + 01背包)
    【CSS】瀑布流布局的两种方式:传统多列浮动和绝对定位布局
    外煤关注:百度收购大部分糯米股份
  • 原文地址:https://www.cnblogs.com/xwgli/p/13178223.html
Copyright © 2011-2022 走看看