记一次gogs迁徙

因有台服务器快到期,也不想续费了。逐渐把上面的功能往其它服务器上转移。这次转移的功能是gogs,一个基于golong开发的git服务器。

目标:从old.com 迁移到 main.com

需要操作的对象:相关文件,mysql数据

工具:scp  mysqldump

 

先是把服务停了,然后根据pid kill掉进程

ps aux | grep gogd
sudo kill -9 XXXX

 

然后把文件从old.com迁移到main.com上去

gogs主要有两个文件夹

gogs
gogs-repositories

因此先打包,在old.com下操作

cd ~/document
zip -r gogs.bak.zip ./gogs
zip -r gogs-repos.bak.zip ./gogs-repositories

然后通过mysqldump命令把gogs数据库生成.sql文件

mysqldump -u user -p --batabases gogs > ~/document/gogs.sql

 

在main.com下新建目录,进入目录后把zip文件从old.com 通过scp迁移到main.com中

在main.com下操作

mkdir /gogsroot
cd gogsroot
scp user@old.com:/admin/document/gogs.bak.zip /gogsroot
scp user@old.com:/admin/document/gogs-repos.bak.zip /gogsroot
scp user@old.com:/admin/document/gogs.sql /gogsroot

导入数据用的是图形数据库工具

使用mysql命令行导入,登录数据库

mysql -u user -p

然后用source命令导入sql文件

mysql> source /gogsroot/gogs.sql

 

这里一开始遇到一个问题,报错(max key length is 767 bytes),解决方法在这里 记一个mysql的问题

数据导入完成后修改app.ini文件

nano gogsroot/gogs/custom/conf/app.ini

配置如下

APP_NAME = Gogs
RUN_USER = root
RUN_MODE = prod

[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
USER = user
PASSWD = xxxxxxxxxx
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /gogsroot/gogs-repositories

[server]
DOMAIN = main.com
HTTP_PORT = 3000
ROOT_URL = http://main.com:3000/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false

[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = false

[session]
PROVIDER = file

[log]
MODE = file
LEVEL = Info
ROOT_PATH = /gogsroot/gogs/log

[security]
INSTALL_LOCK = true
SECRET_KEY = XXXXXXXXXXXX

主要改的就是database、repository、server和log关于域名和路径的地方。

 

然后在gogsroot下执行

./gogs/gogs web &

 

测试一下

 

 

OK,打完收工。

 

posted @ 2019-10-29 14:07  shiningsun  阅读(329)  评论(0编辑  收藏  举报