之前用星辰同学的自搭建不蒜子已经有一年的时间了,效果和运行速度都非常不错。在日常维护中看见星辰在2.8版本更新了数据结构。为了继续能够接受项目维护,尝试更新一下数据结构。这个文章就是记录这个过程的。

项目

自搭建不蒜子教程

不蒜子迁移数据到自搭建不蒜子项目

本文由自搭建不蒜子项目作者星辰同学手把手指导。

如何判断你需要这个教程

这个教程适用于2.8版本之前的自搭建不蒜子

停止运行不蒜子

ssh连接服务器,然后cd进入不蒜子的目录,然后执行docker-compose down把容器停止。

停止busuanzi

备份dump.rdb

为了避免造成不可挽回的损失,我们首先需要备份原来的数据文件。以宝塔为例。

因为最初使用docker-compose来部署的,数据库在data文件夹下。

数据库

下载/data/redius/dump.rdb

下载数据库文件

修改docker-compose

添加端口给redius,将容器内 redis的 6379 映射到宿主机的 16379上

端口

1
2
ports:
- "127.0.0.1:16379:6379"

添加完重新执行 docker-compose up -d

运行容器

下载转换项目

到版本中下载根据你的服务器下载对应的编译的版本

转换处理

一般来说Linux服务器是busuanzi-transfer-linux-amd64-v0.0.4

并下载config.yaml文件.

1
2
3
4
5
6
Redis:
Address: 127.0.0.1:6379
Password: ""
Database: 0
Prefix: "bsz"
ToPrefix: "bsz_transfer"

从宝塔进入项目文件夹,新建一个transfer文件夹

创建文件夹

将可执行文件和配置文件(config.yaml)放入文件夹中。

上传文件

修改配置文件

双击刚才上传的config.yaml文件夹。

Prefix 为 busuanzi 中配置的 Prefix (默认为 bsz)

ToPrefix 可以不用修改

配置文件

执行可执行文件

在ssh中执行我们刚刚上传的可执行文件,sshcd进入文件夹执行 ./busuanzi-transfer-linux-amd64-xxxxx

例如:./busuanzi-transfer-linux-amd64-v0.0.4

等待迁移的进行,大概几分钟

迁移成功

更改docker-compose

我们修改docker compose添加环境变量

BSZ_PATHSTYLE=false

BSZ_ENCRYPT=MD532

REDIS_PREFIX: “bsz_transfer”

WEB_CORS要改成你所用到的地址,避免跨域问题。

1
2
3
4
BSZ_PATHSTYLE: false
BSZ_ENCRYPT: MD532
REDIS_PREFIX: "bsz_transfer"
WEB_CORS: "https://blog.zhheo.com,https://pv,zhheo.com"

重新拉取镜像

修改项目docker-compose的版本(改成最新的版本号或者2.8.5)

1
xcsoft/busuanzi:v2.8.5

在ssh中返回到项目根目录,执行

1
docker-compose pull

拉取镜像

重新运行

执行

1
docker-compose up -d

重新运行busuanzi服务。