小李同学 keep digging deeper
NAS 与自建服务

halo1.x迁移halo2.x过程记录

3 阅读 — 字

去年新用户买的腾讯云轻量服务器过期了,今年换成华为云继续用。它新用户能买 2C2G2M 和 2C2G3M,个人建站够用。【12月特惠进行中】https://activity.huaweicloud.com/cps.html?fromacct=4dc5159a187741c98afd594ca0c85dbf&utm_source=&utm_medium=&utm_campaign=

下面是从 Halo 1.x 搬到 2.x 的全过程。

备份旧数据

1. 导出内容。 旧站是 1.x,进后台:【系统】-【小工具】-【备份】-【数据导出】。备份完点文件名下载 JSON,后面要用。

2. 打包图片。 登录旧服务器,把 halo 目录下的 upload 打包:

zip -r upload.zip ./upload

传到新服务器,attachments/migrate-from-1.x/ 是专门给迁移用的目录,可以先建好:

rsync -av /home/docker/halo/upload.zip root@1.94.xx.xx:/home/docker/halo2/attachments/migrate-from-1.x/

在新服务器上装服务

1. 解压并检查目录。

unzip upload.zip

2. 起 MariaDB。 没用 docker-compose,直接 docker run,效果一样。网络用 host,MySQL 地址就能写 127.0.0.1:

# 安装mariadb
docker run -itd \
--name mariadb \
--env MARIADB_USER=root \
--env MARIADB_DATABASE=halodb \
--env MARIADB_ROOT_PASSWORD=xxxxxx \
--restart=always \
--net=host \
mariadb:latest

MARIADB_ROOT_PASSWORD 换成自己的密码,后面 Halo 的连接串要用同一个。

3. 起 Halo 2。

docker run -itd \
--name halo \
--net=host \
-v /home/docker/halo2:/root/.halo2 \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-e JVM_OPTS="-Xmx256m -Xms256m" \
--spring.sql.init.platform=mysql \
--spring.r2dbc.url="r2dbc:pool:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true" \
--spring.r2dbc.username=root \
--spring.r2dbc.password="xxxxxx" \
docker.io/halohub/halo:2.20.14

-v /home/docker/halo2:/root/.halo2 里的目录要和实际对应;JVM_OPTS 固定 256 MB,2G 内存的机器上给 MySQL 留余地。

4. 装 Portainer(可选)。 看容器状态方便些:

docker run -itd \
-p 9000:9000 \
--name portainer \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/docker/portainer:/data \
docker.io/portainer/portainer-ce:2.26.1

恢复数据

1. 初始化并装插件。 打开 Halo 2 后台,设好账号密码,然后装这几个插件:站点迁移、链接管理、图库、瞬间(原日志)。装完记得去插件里启用,不启用不生效。

2. 跑迁移。 左侧菜单【迁移】,选 Halo:

  1. 选 Halo 1.5 / 1.6 数据迁移;
  2. 点 选择文件,选 1.x 导出的那个 JSON;
  3. 如果 1.x 用过云存储,会弹窗让你选存储策略,选之前建好的那个;
  4. 点页面下方 执行导入。

导入完成后文章、页面、评论都在,图片走的是新服务器上的 attachments 目录。确认没问题再改域名解析,旧站先别急着关。

参考

本文作者 小李同学,转载请注明出处。

评论

还没有人留言。

写一条

提交后会先进站主的待审列表,通过之后才公开。

搜索文章

输入关键词搜索文章。