Gogs服务器迁移记录

公司内用Gogs搭建的git服务器最近感觉有点慢,想换台机器,于是做了一次迁移,并简单记录过程。

整体过程还是比较简单的,主要分几个步骤:

  1. 停止Gogs服务。防止迁移过程中有人修改。
  2. 备份MySQL数据库。
  3. 把数据库备份文件、gogs主目录、gogs-repositories目录,都拷贝到新机器上。
  4. 新机器上安装MySQL,创建gogs数据库和用户,导入备份数据。为简单起见,我使用了相同的数据库名,不给自己找麻烦。
  5. 在新机器上安装Git软件。我一开始图省事直接拷贝Git目录到新机器,并修改系统环境变量,把Git路径加入Path,但后来使用中遇到问题,最后还是重新安装了。
  6. 修改gogs主目录中的custom\conf\app.ini文件,把里面数据库配置、文件路径相关的地方,都改成新机器的。
  7. 如果在局域网做了代理服务来对外网提供git服务,别忘了同时修改代理服务器配置。

启动试试看,服务应该能正常访问了。

等等,虽然看起来一切正常,但push代码的时候,报错(忘记截图了,大致如下):

remote: ./hooks/pre-receive: line 2: E:/gogs/gogs.exe: No such file or directory 

E:/gogs是旧机器的路径,新机器gogs是在D盘,显然还有什么地方改漏了。
搜索一下,发现每个仓库下都有hooks文件夹,里面的pre-receive文件内容是这样的:

#!/usr/bin/env bash
"E:/gogs/gogs.exe" hook --config='E:\gogs\custom\conf\app.ini' pre-receive

手工改一个两个没问题,每个仓库都改,岂不累死?
我相信Gogs开发组肯定不会有这么弱智的设计,于是在系统里翻箱倒柜地找,很快在系统控制面板中发现这个:


重置钩子

点击一下执行,再去看磁盘上的钩子文件,里面的路径已经换成新的。现在push就没问题了。

PS:换机器后还是很慢,无语了,点击一个提交记录查看变更,耗时接近三十秒,受不了!有朋友知道怎么解决吗?


打开页面耗时近30秒

你可能感兴趣的:(Gogs服务器迁移记录)