2012年4月6日星期五

Discuz X2 笔记 : 论坛搬家 数据迁移

吐槽一下:用官方的restore.php实在是太太太坑爹了,每次点恢复不是提示404,就是ucenter通信失败,什么通信key/api/ip按帖子照做N轮还是抽筋。还不如直接"改配置文件 + 导入数据库"恢复简单。

【备份旧数据】
  1. 数据库备份:进管理后台,站长 -> 数据库 -> 备份,生成都备份文件放在data/backup_xxxx目录下,名字一般是xxxx-1.sql等,分好几份存
  2. 站点文件备份:直接保存站点根目录下所有文件,打个tgz压缩包就行了

【迁移前需要知道的信息】
  1. 假设旧域名为 http://www.oldsite.com,旧数据库主机为db.oldsite.com,旧数据库名为 mydiscuzdb
  2. 要迁移到新的域名 http://www.newsite.com,假设根目录为 /srv/http
  3. 且已知新的mysql数据库主机db.newsite.com、端口newport、用户名newuser、密码newpwd

【上传论坛文件】
  1. 修改旧的根目录下的3个配置文件里的数据库连接信息:
    • config/config_ucenter.php
    • config/config_global.php
    • uc_server/data/config.inc.php
  2. 检查一下旧的根目录下出现localhost、db.oldsite.com、www.oldsite.com的文件,按实际需要进行修改
  3. 将旧的根目录下所有文件上传到新的http://www.newsite.com的对应都根目录/srv/http下

【导入数据库】
$ mysql -hdb.newsite.com -Pnewport -unewuser -pnewpwd
> create database mydiscuzdb
> use mydiscuzdb
> source xxx-1.sql
> source xxx-2.sql
> ...

也可以直接用navicat之类的客户端图形化工具导入,比较省劲

【修复签名档图片链接】
部分签名档图片会以 http://www.oldsite.com/data/xxxxxx/xxxx.png的形式出现,需要在数据库中更新
$ mysql -hdb.newsite.com -Pnewport -unewuser -pnewpwd
> use mydiscuzdb
> update pre_common_member_field_forum set sightml = replace(sightml,'http://www.oldsite.com','http://www.newsite.com')

【其他】
这样搞完,大部分数据都已经可用。但是自定义用户组的信息失效,不知何故。

没有评论:

发表评论