导入了过去的 wiki

今天算是把我旧的 wiki 给导入进去了。

之前我新建了一个 wiki。因为 wiki 实在是太好用了,所以我在换主机之后就想重新把 wiki 给搭建起来。我过去用的是 MediaWiki,用着还不错,所以这次还是选择了它。

我在转移数据的时候没有考虑清楚,所以我忘了把 MediaWiki 里面的资料给导出来了(其实我也不知道 MediaWiki 有没有导出这一项),只是备份了过去的数据库。我的旧主机在 site5 上,那里的 MySQL 的字符编码设定我没搞定,所以那时候我的 blog 和 wiki 用的都是 SQLite 3 作为数据库引擎的。数据库都保存在一个文件里,直接把文件复制过来就 OK 了。

这次我没打算继续用 SQLite 3,因为我不想在这个主机上安装太多的东西。MySQL 是一定要装的,因为我在新主机上用的 blog 程序是 WordPress。WordPress 有 PDO 插件,据说可以使用 SQLite。不过我在 3.0.1 版本的 WordPress 上试验了一下,没有成功,不知道是不是因为版本的问题,所以我就干脆直接使用 MySQL,反正现在我对 MySQL 有一些了解了,勉强可以操控了。因此我就没有继续安装 SQLite。

由于我使用了 MySQL,所以 wiki 里那些旧的东西就不能导入了。没办法,我只有去 Google 的 cache 里面找找,然后又把我保存下来的 SQLite 数据库给 dump 成 SQL 语句,从里面找出原先的内容来再手动复制到新的 wiki 里去。

Wiki 的好处就是可以保留编辑的历史纪录,坏处也是如此。通过阅读 MediaWiki 数据库的 SQL 语句,我发现 MediaWiki 里面的内容不是增量保存的,而是每一个版本都有完整的一个备份。这样比增量备份占用更多的空间。我印象里似乎 git 是增量保存的(?),曾经看过一个人的关于 git 的演讲视频,提到 git 可以做为 wiki 的后台,因为它管理的是内容,而不是文件,这与 wiki 的思想正好吻合。我过去一度认为 MediaWiki 也是保存的增量变动,没想到实际上却出乎我的意料。我没有仔细检查,不过我猜测 MediaWiki 里面的“这是一个小修改”选项就是完全备份与增量备份的开关。我过去以为选了“小修改”只是在察看编辑历史的时候清晰的显示一个“小”字,这样一来就更合理了。不过,WikiPedia 里的编辑中“小修改”的比例应该不会特别大,这样如果每个版本都留下一个备份的话,那么 WikiPedia 的数据库就相当可观了。

不过 MediaWiki 的每个版本都有一个完整备份倒是利于我的工作,找到了一个新版本后检查一下哪里有变动,然后把变动复制过去就好了。这样对于人工比对来说更加直观。但同时,这也保存了 spam 的历史。

过去我也遇到过 spam,但没有一次比这次更让我对 spam 深恶痛绝。我过去没有对 wiki 的访问和编辑做限制,因为我那时低估了 spam 的威力。后来我发现,哪怕我的站点只是个没有任何名气的小站点,spam 仍然不放过我。每天都有新的 spam,我估计是机器发送的。这些 spam 里面全是链接,没有有意义的文字,而且屡禁不绝。由于 MediaWiki 给每个版本都留一份备份,所以我的数据库里面 spam 的数量就更多了。有时候我翻页好几次都没有找到我自己的内容。

所以这次我安装好了 wiki 之后,第一件事情就是把编辑权限都锁住,只允许 sysop 组的用户可以编辑。MediaWiki 对于页面权限的设定很薄弱。比如说我想把某个页面设定为任何人都能编辑,而其它的只有我自己编辑,似乎就没有办法做到,这也是挺无奈的。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据