版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/2008/01/migrate_mt_blog_manually.html
MovableType 3.35 的mysql数据库表结构:
+-----------------+
| mt_author |
| mt_blog |
| mt_category |
| mt_comment |
| mt_config |
| mt_entry |
| mt_fileinfo |
| mt_ipbanlist |
| mt_log |
| mt_notification |
| mt_objecttag |
| mt_permission |
| mt_placement |
| mt_plugindata |
| mt_session |
| mt_tag |
| mt_tbping |
| mt_template |
| mt_templatemap |
| mt_trackback |
+-----------------+
手工转移的话需要更新很多字段
主要是更新4个表 entry comment tbping (placement) 中的 blog_id
1. 把个人空间改成 blog 2
update mt_category set category_blog_id=2 where category_id=2;
2. 把所有文章换过来 blog 2
update mt_placement set placement_blog_id=2 where placement_blog_id=1 and placement_category_id=2;
然后循环得到 entry_id 挨个更新
SELECT placement_entry_id from mt_placement where placement_category_id=2 and placement_blog_id=2
update mt_entry set entry_blog_id=2 where entry_id=$placement_entry_id
如果mysql支持可以有两种方法
update mt_entry e,mt_placement p set e.entry_blog_id=2 where p.placement_blog_id=1 and p.placement_entry_id=e.entry_id and p.place_category_id=2;
update mt_entry e set e.entry_blog_id=2 where e.entry_id in (select p.placement_entry_id from mt_placement p where p.place_category_id=2);
3. 把原有路径做跳转 写进去一行 meta refresh
META HTTP-EQUIV="Refresh" content="0; URL=/"
SELECT p.placement_entry_id,e.entry_basename,e.entry_created_on from mt_placement p,mt_entry e where e.e
ntry_id=p.placement_entry_id and p.placement_category_id=2 and p.placement_blog_id=2
通过 $entry_created_on 得到年月日 便于定位新blog的url
4. 至此 entry 手动修改完毕
下面修改 comment
1. 获得 comment_id
select c.comment_id from mt_comment c,mt_placement p where p.placement_entry_id=c.comment_entry_id and p
.placement_blog_id=2
2. 更新
update mt_comment set comment_blog_id=2 where comment_id=$comment_id
更新 tbping (我把 mt_trackback 也更新了)
1. 获得 tbping_id
select c.tbping_id from mt_tbping c,mt_placement p where p.placement_entry_id=c.tbping_tb_id and p.place
ment_blog_id=2
2. 更新
update mt_tbping set tbping_blog_id=2 where tbping_id=$tbping_id
|