Gogs环境搭建和数据迁移指南

管理员
管理员 2021-3-23

gogs搭建

参考官方文档即可
https://gogs.io/docs/installation/install_from_binary

wget https://gogs.io/docs/installation/install_from_binary
tar -zxvf gogs_*.*.*_linux_amd64.tar.gz
## 启动
./gogs web &

查看log确认启动成功

2021/03/23 00:13:15 [ INFO] 代码仓库 0.12.3
2021/03/23 00:13:15 [ INFO] Run mode: Production
2021/03/23 00:13:15 [ INFO] Listen on http://0.0.0.0:3000

迁移命令说明

./gogs backup 备份

./gogs backup --help

 --config value, -c value   指定配置文件位置 path (default: "custom/conf/app.ini")
   --verbose, -v             查看过程
   --tempdir value, -t value  指定临时空间 (default: "/tmp")
   --target value             备份文件存储位置 (default: "./")
   --archive-name value        备份文件名字 (default: "gogs-backup-20200428143439.zip")
   --database-only            是否只迁移数据库
   --exclude-repos            不迁移那些仓库

./gogs restore 恢复

./gogs restore --help
OPTIONS:
   --config value, -c value   指定配置文件位置(default: "custom/conf/app.ini")
   --verbose, -v              查看过程
   --tempdir value, -t value  指定临时空间 (default: "/tmp")
   --from value               指定数据源(必须)
   --database-only            只迁移数据库文件
   --exclude-repos            不迁移那些仓库

Backup 备份操作实例

# 全部备份(常用)
 ./gogs bakcup
 
# 部分备份(数据太大时)
./gogs backup --exclude-repos

# 制定配置文件
./gogs backup --config=my/custom/conf/app.ini

Restore恢复

# 全部导入
./gogs restore  --config custom/conf/app.ini --from gogs-backup-20200428101740.zip 

# 只导入数据库文件
./gogs restore --database-only --config custom/conf/app.ini --from gogs-backup-20200428101740.zip

–config custom/conf/app.ini 指定导入仓库用到的配置文件,否则使用压缩包中的默认配置文件
–database-only 只导入数据库


如何迁移数据库

例如如何把mysql数据库迁移到pgsql

方案:修改配置文件后,直接指定新的配置文件导入数据库。然后启动gogs

## 只备份数据库
./gogs backup --database-only

## 只导入数据库,配置文件指定新的数据库连接
./gogs restore --database-only --config custom/conf/app.ini --from gogs-backup-20200428101740.zip

方法1:代码操作

# 把旧仓库被分成本地git文件目录
git clone --mirror 旧的git地址

# 推动本地目录到新的地址
cd xxx.git
git push --mirror 新的git地址

以上就完成了单个仓库的迁移

方法2:UI界面操作,管理员登录gogs的管理界面,选择“迁移外部仓库”

image.png



常见问题:

问题1:

[FATAL] Failed to import 'custom': rename /tmp/gogs-backup/custom /data/gogs/gogs/custom: invalid cross-device link

问题2:从winddows到linux用户名错误

报错需要administrator用户,linux系统没有这个用户
原因:从windows导出数据时默认配置文件的用户是administrator
解决:自定义配置文件后,通过–config app.ini 指定配置文件导入,参考上面例子


回帖
  • 消灭零回复

微信二维码

微信二维码

微信扫码添加微信好友