Sql2Xml帮你从sql转换到xml恢复WordPress

分类: Python, Wordpress, 下载, 代码 | 标签: , , , , | 日期:2010-03-03 | 261 views

本文献给和我一样开始使用wordpress之前没有对数据库进行utf-8编码的管理的不幸者,后来使用wp-db-backup备份的sql文件来还原,却发现无论如何调整编码,在数据库里看起来在正常不过的文字在wordpress里面就是一堆火星文。这时,除了其他人说的几种变换编码的方法之外,将sql数据库文件转换成导入的文件也许相对来说更容易实现。

Sql2Xml.py能帮助你从自动备份出来的sql数据库导入文件提取出所有的作者、文章、页面和评论信息并输出到Wordpress导入支持的WordPress eXtended RSS (WXR)格式,默认包含了每篇文章/页面的自定义域信息同时导出。
wp_options中自定义域太多,因此除了主要的blog信息,其他信息没有采集。
但要注意:

  • 该脚本只适用于有正常识别的sql备份文件,而导入phpmyadmin后前台无法显示的情况。
  • 本脚本采用Python 3.1 语法编写,使用Python 2.6运行会发生错误。
  • 本脚本的使用方法是sql2xml.py infile.sql outfile.xml
  • 为了避免这种麻烦再次发生,在导入使用脚本生成的文件之前,你需要先设置好数据库连接字符集为utf-8,然后重新安装wordpress。
  • 本脚本处理后生成的回车换行符是\r\n,您在正式导入博客之前需要将其批量替换为回车。这在ultraedit等文字编辑软件中很容易做,Alt+H开始替换吧。

其中infile.sql是解压后的sql备份文件,outfile.xml是程序生成的WXR文件。使用前,请将脚本和解压好的sql备份文件放在相同文件夹下使用。

Download

Further readings
wordpress的数据库结构

  1. WordPress数据库结构分析
  2. WordPress Blog 的分类与标签研究

你也许会喜欢的日志

8人发表了评论  ↓发表评论↓
  • Hi:

    我遇到了这样一个问题,

    File “sql2xml.py”, line 274, in
    +wp_users[1::tables_num_dict['wp_users_table']][wp_users[0::tables_num_dict['wp_users_table']].index(wp_posts[i+1])] +’]]>’)
    TypeError: Can’t convert ‘int’ object to str implicitly

    环境: Ubuntu 10.04 python 3.1

    因为对python不是很熟,所以折腾了很久也没解决。。

    [回复]

    lx 回复:

    @Miuc, 我明天检查一下

    [回复]

    Miuc 回复:

    @lx, 嗯,我折腾好了,原来是强制类型转换没全部加上,用正则表达式修改一下就好了。:)

    [回复]

    lx 回复:

    @Miuc, 看来我不用检查了

    Miuc @ 2010年11月28日

    回复
  • cant download this script, please paste or send me direct link. thx :)

    [回复]

    lx 回复:

    Now you can download it from this page. sorry to make you trouble.

    [回复]

    Zbigniew @ 2011年07月4日

    回复
  • 很需要这个东西,可是不知为何下载不了啊!

    [回复]

    lx 回复:

    非常抱歉的说,现在已经可以下载了。是downloadManager与Lightbox plus有冲突引起的

    [回复]

    shuiyao @ 2011年07月8日

    回复

[ Ctrl+Enter提交 ]

3437471453591321281023251740504243322112038418334931126263041298715442436271424616193932548

Freelance PHP Developer