发表于2020-09-12
今天完成了我自己的git私服服务器数据迁移,使用的是gitea,操作系统是Windows10。为什么要迁移呢?因为考虑到代码的异地容灾,我想把gitea服务器放在不同的地域。在这个过程中难免遇到几个坑,下面把我的操作步骤分享出来,希望有和我相同需求的同学少走弯路。
因为我的新机器只有两个分区C和D,原来机器有N多个分区
有三块硬盘,^_^
git程序程序在K盘,仓库文件在L盘,分别在两块硬盘上。所以新机器没有和原来路径对应的K和L分区,这给迁移带来了麻烦和复杂度,如果你的的新机器保持和原来的相同路径就简单多了。
备份数据库gitea,导出数据库结构及数据gitea.sql
原位置:K:\gitea-1.11.6
新位置:D:\gitea-1.11.6
原位置:L:\gitea-repositories
新位置:D:\gitea-repositories
gitea配置文件:D:\gitea-1.11.6\custom\conf\app.ini
修改如下节点信息,对新的路径和地址进行相应调整:
ROOT_PATH
ROOT_URL
SSH_DOMAIN
DOMAIN
ROOT
修改数据库配置[database]部分
如果路径相同忽略这一步。
注意:修改repositories含有hook部分的要修改pre-receive.d、post-receive.d、update.d,因为里面有gitea的目录。不然代码push不上去会报如下错误:
找到对应文件:
看到路径写死了还是原来的路径。
改为:
#!/usr/bin/env bash
"D:/gitea-1.11.6/gitea-1.11.6-windows-4.0-amd64.exe" hook --config='D:/gitea-1.11.6/custom/conf/app.ini' pre-receive
同理,post-receive.d、update.d一样的修改
如果项目比较多可以通过notepad++的在文件中查找&替换功能。
可以共提供source命令或者数据库工具navicat等。
sc create gitea-1.11.6 start= auto binPath= ""D:\gitea-1.11.6\gitea-1.11.6-windows-4.0-amd64.exe" web --config "D:\gitea-1.11.6\custom\conf\app.ini""