上一篇Window10安装linux子系统及子系统安装1Panel面板 - Stars-One的杂货小窝将对应的环境都准备好了,这下我们可以通过1Panel进行halo的2.10版本安装,来测试新版本升级是否有什么问题
本篇文章实际是在本地Linux系统进行的数据迁移和新版本使用的,仅供参考
各位如果要参考实践,请注意数据备份!!
安装halo
先进入1Panel面板,我们需要先安装数据库,之后再Halo的话
我这里数据库是选择了MySql的8.1.0版本(halo好像也支持其他数据库,具体有兴趣各位自行研究下)
安装halo选择mysql数据库即可,也要记得勾选允许外部访问设置
之后通过ip+halo端口号访问halo
PS: 通过
ifconfig
的linux命令查看ip地址(具体可参考上一篇文章)
第一次访问会提示初始化一个账号,初始化账号就正式进入到halo后台管理了
数据迁移
这里参考官方文档,下面记录我的步骤
提示: 官方目前只支持1.5和1.6版本迁移到halo2.x版本,如果halo是之前的版本,得先升级到1.5或1.6版本,再继续升到2.x版本
1.安装迁移插件
站点迁移:https://halo.run/store/apps/app-TlUBt
2.必要的3个插件
- 链接管理:https://halo.run/store/apps/app-hfbQg
- 图库:https://halo.run/store/apps/app-BmQJW
- 瞬间(原日志):https://halo.run/store/apps/app-SnwWD
3.安装MD编辑器插件
我这里选择了 ByteMD:https://halo.run/store/apps/app-HTyhC
Halo 2.0 目前没有内置 Markdown 编辑器,如果需要重新编辑迁移后的文章,需要额外安装 Markdown 编辑器插件
4.导出1.5版本的json数据
5.新版本导入数据
到此,数据就是成功导入了
其他问题
1.文章链接发生变更
之前博客文章地址都是日期开头的,新版本确实变更为固定
[](https://stars-one.site/2023/06/03/android-studio-version-list)
http://172.23.147.149:9888/archives/android-view-circle
到论坛问了下,可以在主题路由那里进行修改
2.主题迁移
之前用的Joe2,不过不支持halo2.x版本了,好在有大佬移植整成了Joe3版本
之前Joe2包含有live2d看板娘,但Joe3没有了,于是装了个live2d看板娘的插件,不过插件似乎有些缓存问题,后台配置的模型id不是优先生效了,和作者提了个issue,不知道作者有没有处理就是了
Joe3有些配置不一样,首页轮播图选择文章不是很好,连模糊搜索都没有,直接一个列表自己选文章,也和作者提了个issue建议
3.文章发布者头像
现在文章详情页的头像,需要修改当前账号的个人配置才行,就是左下角,账号旁边有个省略号的编辑,要去里面自己重新上传头像
我想着能不能直接输入一个图片链接使用,在论坛提了意见,halo社区成员考虑安全隐私方面,就不考虑加这个功能了,也就算了,也还是能用
4.自定义页面链接变更
之前旧版本有些自定义页面,迁移过来后,需要重新配置下
默认迁移过来的是属于自定义链接了,所以要调整下
我这里就是重新在下面的主菜单去新建菜单,选择我们的自定义页面就可以了
5.文章列表查询筛选有问题
之前旧版本存在一些私密和草稿文章,迁移到新版本之后,文章列表确实是有这些文章,且显示文章的状态是未发布的
但是我通过筛选未发布的文章,却是提示我数据为空...好像是一个bug,到论坛里提了个帖子反馈,目前还没人回复
6.主题编辑
新版本不像之前版本那样,有个主题编辑功能
论坛里也问了,官方建议自己去fork一份代码进行修改,我看那个主题文件都是一个gradle项目了,一想要配环境之类就放弃了
官方不提供,那我们自己改就好了
实际主题文件和之前一样,是放在本地的一个文件夹目录的
我们在1Panel面板的文件管理进入到/opt/1panel/apps/halo/halo/data/themes
此目录下就可以找到我们安装的主题了
这个opt文件夹,实际上就是你之前1Panel安装时候的配置项,我是直接默认,所以就是opt文件夹
之后里面的主题文件和相关规则,可以参考halo官方主题开发文档
注意下: 新版本使用了theleaf模版引擎,和之前的freemarker不一样了
其他补充
最后,目前我是在本地进行测试使用,还没准备放在服务器上
迁移步骤有2种:
1.通过通过1Panel的容器菜单,将mysql和Halo的2个docker镜像导出,之后服务器那边安装1Panel导入镜像即可
2.通过halo管理内置的迁移数据
在halo的备份菜单,将数据备份,然后新版本那边重新安装mysql,halo,之后初始化,再导入备份数据
当然,上面2种只是个理论,具体过程中会不会有什么问题,得后续实践才知道了