通过简单几步,将 Typecho 博客程序的数据(文章,标签一类)轻松转换到由 Laravel 驱动的 Canvas 博客平台。
有关 Canvas 什么的我就不说了吧,大概知道这是个比较新的 PHP 博客程序,由 Laravel 框架驱动就可以了。
至于为什么为突发奇想写这样一个东西,首先主要是这是个比较新鲜的东西,相关的东西都还很少,我在 GitHub 上找到了 wordpress-to-canvas 的东西,于是便觉得为何不搞一个 typecho-to-canvas 呢~其次呢,因为我之前用过一段时间的 Typecho,也想借这个东西把之前的一些数据导回来(虽然我找不到我把 DB 的 备份扔到哪了……qwq),以及……其他的一些原因……所以就花了一些时间造这个轮子啦。
GitHub: typecho-to-canvas: easily converting your data from Typecho to Canvas
Packagist(Composer): typecho-to-canvas
# 功能特色
- Typecho 下的第一个 “Switch to Canvas” 工具
- 支持转换 Typecho 的文章、标签和关系树,兼容性约 95%
- 自动加载和解析配置数据,你甚至可以全程 Enter
- 在 CLI 模式下运行
作者这么萌
# 环境需求
- 确保 Typecho 和 Canvas 在转换环境下分别已正确安装
- 拥有转换环境的操作权限
- PHP 5.6.4 以上的版本(Canvas 的版本要求)
- 已正确安装 composer 依赖管理工具
- PHP 已加载对应 Typecho 和 Canvas 安装类型的数据库的 PDO 拓展
- 数据库正常运行
(废话) - 耐心,Patient
# 使用方法
数据无价,在进行以下操作之前,强烈建议手动备份 Typecho 和 Canvas 的数据库。
数据无价,在进行以下操作之前,强烈建议手动备份 Typecho 和 Canvas 的数据库。
数据无价,在进行以下操作之前,强烈建议手动备份 Typecho 和 Canvas 的数据库。
重要的事情说三遍。 再次确保你的环境工作正常,Typecho 和 Canvas 的数据库可以访问~然后接着往下看吧~
准备:安装 te2cn
安装教程可以在 GitHub 的 README 找到:https://github.com/kirainmoe/typecho-to-canvas
这里提供通过 Git 的安装方法,简单快捷~如果你没有安装 Git,请自行搜索当前系统的安装方式。
# 首先将项目仓库拉下来
$ git clone https://github.com/kirainmoe/typecho-to-canvas
$ cd typecho-to-canvas
# 然后用 composer 安装依赖
$ composer install
# 运行 te2cn,按照提示转换数据就行啦
$ chmod -R 755 ./te2cn
$ ./te2cn
填写数据库配置信息
运行程序首先是一贯的套路 welcome,然后 te2cn 会先后向你询问 Typecho 和 Canvas 的数据库配置信息。首先会询问 Typecho 的数据库配置信息,请按顺序依次输入:数据库主机、用户、密码、数据库名称、端口、以及数据库的种类。程序会给出默认值,如果你不需要修改默认值,可以直接敲回车。 (小技巧:直接将 Typecho 的配置文件 config.inc.php 复制到程序目录下,te2cn 会自动解析数据库配置,无需人工填写)
接下来会询问 Canvas 数据库的配置信息。首先会问你 Canvas 和 Typecho 是否安装在同一数据库主机中,如果是的话直接回车,程序会问你 Canvas 安装的数据库名称;如果不是的话,会收集 Canvas 安装数据库的配置。 (目前暂时不支持解析 Laravel .ENV 的说 qwq)
接下来会列出所收集或解析的数据库的配置信息,请检查是否有误,如果无误可以直接敲回车。
开始转换进程
如果信息填写正确,程序就会自动开始数据导出进程。不过在这之前会先询问你是否保留 Canvas 的现有数据,如果你需要保留直接回车,不保留的话需要确认两次,以防误操作丢失数据。
然后,程序就会自动启动转换进程。取决于 Typecho 数据量的大小以及服务器 IO 性能,这个过程可能需要一些时间,请耐心等待,在依次导出了 tags, posts, relationships 之后,就完成了操作。
Enjoy~
当看到转换完成的提示之后,Typecho 的数据就成功地被导出到 Canvas 了。你可以试一试运行 Canvas 看看效果:
$ cd /path/to/your/canvas
$ php artisan serve
# 问题解决
目前由于 Canvas 暂时不支持本地评论以及其他一些 Typecho 的 features,所以只做了文章、标签和关系树的单向转换。如果有时间会更新逆向转换功能(canvas-to-typecho)。
有任何问题或者建议,都可以到 GitHub 的项目主页提 issues 或者 Pull request 告诉我们。
嘛。希望这个轮子能对你们有帮助~