Yapi数据迁移(docker版)
前言
最近腾讯99一年的特价服务器要到期了,搭建在服务器上的yapi还在使用。本想直接把项目的接口全部导出来,再导入到新的服务器上。但想了下,账号这些的还要他们重新去建,接口地址也要重新配置,本人一直比较赖,思来想去还是无缝迁移吧,大家都省事。
直接用
docker save -o container.tar <container_name>
docker load -i container.tar
docker run ....
以下的方案废弃,是笨办法,当时不太会用docker
方案
A为老机器,B为新机器。
1.将A服务器(老服务器)上的docker中的MongoDB数据备份;
2.将备份的数据还原到B服务器(新服务器)的MongoDB中;
3.将指向A服务器的域名ip改为B服务器的ip地址。
命令
1.将A服务器(老服务器)上的docker中的MongoDB数据备份;
备份数据到 /my-yapi 路径下(路径下有一个yapi的文件)
docker exec 容器名 mongodump -d yapi -o /my-yapi/
进入到容器中打包备份文件
docker exec -it 容器名 /bin/bash
cd /my-yapi
tar -cvf yapi.tar /my-yapi/yapi
将备份文件移动到宿主机(A服务器)
docker cp 容器名:/my-yapi/yapi.tar /root
2.将备份的数据还原到B服务器(新服务器)的MongoDB中;
将A服务器上的备份文件移动到B服务器,具体操作可参见往期文章
mac可以用 scp,windows可以用 rz sz等
进入到B服务器,将备份文件移动到B服务的monggo docker中
docker cp /root/yapi.tar 容器名:/data/
进入到容器中解压文件
docker exec -it 容器名 /bin/bash
cd /data
tar -zxvf yapi.tar
还原数据
docker exec 容器名 mongorestore -d yapi --drop --dir /data/yapi
3.将指向A服务器的域名ip改为B服务器的ip地址。
域名管理平台中修改域名指向
插曲
到这里,整个yapi数据迁移就算完成了。为了验证是否成功,我关掉了A服务器的docker服务器,访问的时候直接就报错了。再确定其他原因后,我重新配置了一个新域名指向B服务器。新域名和老域名指向的是同一个ip,新的可以访问,老域名的还是访问的A服务器。好吧应该是我的dns服务缓存没有更新吧。第二天再访问一次,新老域名访问一切正常。