博客从 WordPress 迁移至 Halo
WordPress 是一个免费的开源项目,使用 PHP 语言开发的博客平台,并逐步演化成一款内容管理系统软件,数据开发基于 MySQL,有许多第三方开发的免费模板,安装方式简单易用。其它详细信息请参考官方网站,有特别详细的说明,地址如下。
官方英文网站:https://wordpress.org/
官方中文网站:https://cn.wordpress.org/
Halo 也是一个免费的开源项目,使用 Java 语言开发的博客平台,官网解释是一款现代化的开源博客/CMS 系统,值得一试。数据库开发可基于 H2、MySQL,默认是 H2,可自定义,安装方式简单易用,还可基于 docker 安装,方便快捷。其它详细信息也请参考官方网站,有特别详细的说明,地址如下。
官方网站:https://halo.run/
两个博客的安装,配置,调试,访问等,这里就不再介绍了,请参考上面的官方文档。
这篇主要说说,当且仅当你当前的博客是 WordPress,如何迁移到 Halo。其实应用部分,相当于基于 Halo 新搭建部署一个博客,但数据部分,如何从 WordPress 对应的表,迁移到 Halo 对应的表,是最复杂的部分,因为两个博客 MySQL 表类似却又不同,没法直接迁移,需要做字段对应关系才行。
WordPress 和 Halo 博客后台对应的表清单分别如下:
当然,每个人 WordPress 对应的表也许不一样,因为自己安装了部分插件等,都会新生成各种表,但 WordPress 刚部署搭建的几张通用表都是一样的,如文章、评论、链接、用户等表。
接下来,干货来了,如何把数据迁移过去呢?
提前注意:以下 SQL 脚本中,部分死值都是博主自己根据自有情况写的,请执行脚本前,对部分 SQL 脚本进行编辑再执行,切记!!!
脚本一:迁移分类目录。
INSERT INTO categories
SELECTt.term_id id,now() create_time,now() update_time,t.description description,t1.`name` NAME,t.parent parent_id,NULL PASSWORD,t1.slug slug,NULL slug_name,'' thumbnail
FROMwp.wp_term_taxonomy tLEFT JOIN wp.wp_terms t1 ON t.term_id = t1.term_id
WHEREt.taxonomy = 'category'
ORDER BYt.term_id
脚本二:迁移标签。
insert into tags
SELECTt.term_id id,now() create_time,now() update_time,t1.`name` NAME,t1.slug slug,t1.slug slug_name,'' thumbnail
FROMwp.wp_term_taxonomy tLEFT JOIN wp.wp_terms t1 ON t.term_id = t1.term_id
WHEREt.taxonomy = 'post_tag'
ORDER BYt.term_id
脚本三:迁移文章。
注意:如果你在 WordPress 中写的文章够多,这个 SQL 执行很慢,请耐心等待。。。
insert into posts
SELECT0 type,t1.id id,t1.post_date create_time,t1.post_modified update_time,0 disallow_comment,t1.post_modified edit_time,0 editor_type,t1.post_content format_content,0 likes,NULL meta_description,NULL meta_keywords,t1.post_content original_content,'' PASSWORD,t1.id slug,0 STATUS,'' summary,'' template,'' thumbnail,t1.post_title title,0 top_priority,NULL url,t2.meta_value visits,0 word_count
FROMwp.wp_posts t1LEFT JOIN wp.wp_postmeta t2 ON t1.id = t2.post_id AND t2.meta_key = 'post_views_count'
WHEREt1.post_type = 'post'
ORDER BYt1.id
脚本四:迁移页面。
insert into posts
SELECT1 type,t1.id id,t1.post_date create_time,t1.post_modified update_time,0 disallow_comment,t1.post_modified edit_time,0 editor_type,t1.post_content format_content,0 likes,NULL meta_description,NULL meta_keywords,t1.post_content original_content,'' PASSWORD,t1.id slug,0 STATUS,'' summary,'' template,'' thumbnail,t1.post_title title,0 top_priority,NULL url,t2.meta_value visits,0 word_count
FROMwp.wp_posts t1LEFT JOIN wp.wp_postmeta t2 ON t1.id = t2.post_id AND t2.meta_key = 'post_views_count'
WHEREt1.post_type = 'page'
ORDER BYt1.id
脚本五:迁移用户。
注意:如果你在 WordPress 中用户很多,这个 SQL 执行也很慢,请耐心等待。。。
insert into users
SELECTt1.id id,t1.user_registered create_time,t1.user_registered update_time,NULL avatar,t1.user_url description,t1.user_email email,t1.user_registered expire_time,NULL mfa_key,0 mfa_type,t1.display_name nickname,t1.user_pass PASSWORD,t1.user_login username
FROMwp.wp_users t1
WHEREt1.id <> 1
ORDER BYt1.id
脚本六:迁移评论。
insert into comments
SELECT0 type,t1.comment_ID id,t1.comment_date create_time,t1.comment_date update_time,t1.comment_mail_notify allow_notification,t1.comment_author author,t1.comment_author_url author_url,t1.comment_content content,t1.comment_author_email email,'055c801bbbea60177266fe798f1e7164' gravatar_md5,t1.comment_author_IP ip_address,0 is_admin,t1.comment_parent parent_id,t1.comment_post_ID post_id,0 STATUS,NULL top_priority,t1.comment_agent user_agent
FROMwp.wp_comments t1
ORDER BYt1.comment_ID
注意,这个脚本迁移的评论是所有评论,需要结合前面刷过的 post 表,把页面的评论单独刷一下,否则页面评论关联不上。脚本如下:
UPDATE comments t1,
posts t2
SET t1.type = 1
WHEREt1.post_id = t2.id AND t2.type = 1
脚本七:迁移链接。
insert into links
SELECTt1.link_id id,t1.link_updated create_time,now() update_time,t1.link_description description,t1.link_image logo,t1.link_name NAME,t1.link_rating priority,t1.link_rel team,t1.link_url url,t1.link_notes notes
FROMwp.wp_links t1
ORDER BYt1.link_id
脚本八:迁移文章和分类目录的关系。
insert into post_categories
SELECT NULLid,t3.post_date create_time,t3.post_modified update_time,t.term_id category_id,t3.id post_id
FROM( SELECT * FROM wp.wp_posts WHERE post_type = 'post' ) t3JOIN wp.wp_term_relationships t2 ON t3.id = t2.object_idJOIN wp.wp_term_taxonomy t ON t2.term_taxonomy_id = t.term_taxonomy_id AND t.taxonomy = 'category'
脚本九:迁移文章和标签的关系。
insert into post_tags
SELECT NULLid,t3.post_date create_time,t3.post_modified update_time,t3.id post_id,t.term_id tag_id
FROM( SELECT * FROM wp.wp_posts WHERE post_type = 'post' ) t3JOIN wp.wp_term_relationships t2 ON t3.id = t2.object_idJOIN wp.wp_term_taxonomy t ON t2.term_taxonomy_id = t.term_taxonomy_id AND t.taxonomy = 'post_tag'
通过以上九步走,你的 WordPress 中的大部分基本数据均迁移完成,可以上 Halo 后台查看各个页面是否都展示了数据。如果部分页面以上,可以查看对应脚本,以及刷入的数据关系,是否有对不上的地方,烦请自行补充脚本再次刷数。
以下贴一些后台数据展现的截图,供参考:
仪表盘:
文章列表:
分类目录:
标签列表:
页面列表:
评论列表:
Good Luck!
博客从 WordPress 迁移至 Halo相关推荐
- 博客从wordpress迁移到Github.io、GitCafe
原文地址 博客从wordpress迁移到Github.io.GitCafe 最近博客(www.coderli.com) 被几个流氓IP爬的厉害,流量超标.促使我萌生了将博客迁移到github.io的想 ...
- 博客从wordpress迁移到hexo
参考资料 https://www.jianshu.com/p/fd233d967e88 https://segmentfault.com/a/1190000005624504 https://gith ...
- 博客大事记之迁移博客到香港主机
个人博客:https://rebootcat.com/2020/11/10/move_blog_hk/ 前言 之前其实已经写过一篇博文: 迁移博客到香港虚拟空间,那为什么又要写这篇博客呢? 上次其实是 ...
- yum安装论坛discuz,phpwind,博客系统wordpress,后台数据库管理phpmyadmin。
一)配置yum系统,参考下面链接. http://shunzi.blog.51cto.com/8289655/1337953 二)安装httpd,mysql,php等服务. yum -y instal ...
- CSDN搬家--博客园--WordPress
错开の折腾经历:个人博客 文章目录 前言 讲一下vps: 博客搬家 1.CSDN导出至博客园 2.博客园导出至WordPress 3.用WP All Import Pro插件导入文章 最后 前言 最近 ...
- 博客搬家 -- 将博客从CSDN迁移到hexo上
博客搬家 -- 将博客从CSDN迁移到hexo上 博客已经迁移到 凌枫's Blog 新博客里面有很详细的如何是hexo+git+github来搭建简单的静态博客 最新也在hexo博客里面更新了Spr ...
- lnmp安装博客系统WordPress
CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2 说明: 操作系统:CentOS 6.2 32位 系统安装教程:Cen ...
- 打造自己博客(wordpress)的wap手机版本
这儿介绍我试用的两款插件:wordpress-mobile-edition和wp-t-wap. 1.先说一下两者的区别. wordpress-mobile-edition插件使用后,可以用手机直接访问 ...
- WP博客ajax,WordPress文章点击统计ajax版,兼容wp super cache缓存代码及插件
自从陌小雨博客历经文章阅读数数次清零后,陌小雨对这个文章浏览数也不是很在意了,这也就是所谓的破罐子破摔吧,但自从陌小雨前段时间再启用 wp super cache 纯缓存代码后,陌小雨觉得还是有必要把 ...
最新文章
- Centos环境下mysql源码编译安装
- 数据分析---《Python for Data Analysis》学习笔记【04】
- CSS实现段落首行缩进、1.5倍行距、左右对齐
- Remote PC另类用法:远程控制
- php执行zip压缩,PHP执行zip与rar解压缩方法实现代码
- [转]数据结构KMP算法配图详解(超详细)
- mysql判断是否在日期区间_通过sql判断时间区间是否存在数据
- Introduce Parameter Object(引入参数对象)
- 语言ppt课件猜拳_八年级语文上册第22课 孟子三章讲解及课件下载
- C#常用的文件操作 (转)
- python做系统查人的往来的信息_L01-04:python查询员工信息表练习
- Python3常用正则表达式
- 修改web.conf不重启服务的方法
- 张小庆,在路上(2)
- php全部大写字母,在PHP中,使用()函数来将全部字母转换为大写
- 风格迁移篇---SAnet:风格注意网络下的任意风格转换
- 常用c语言代码大全,C经典程序代码大全.docx
- java specification_java规范(Java specification).doc
- 广义表(Generalized Lists)
- pymongo 基本操作