針對大量資料,直接使用 SQL 轉換結構並匯入 Access 最為高效。步驟如下:
CREATE TABLE blog_Article (
log_ID int NOT NULL,
log_CateID int NULL,
log_AuthorID int NULL,
log_Level int NULL,
log_Url varchar(255) NULL,
log_Title varchar(255) NULL,
log_Intro longtext NULL,
log_Content longtext NULL,
log_IP varchar(15) NULL,
log_PostTime datetime NULL,
log_CommNums int NULL,
log_VIEwNums int NULL,
log_TrackBackNums int NULL,
log_Tag varchar(255) NULL,
log_IsTop varchar(10) NOT NULL
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE blog_Category (
cate_ID int NOT NULL,
cate_Name varchar(50) NULL,
cate_Order int NULL,
cate_Intro varchar(255) NULL,
cate_Count int NULL
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
WordPress 將分類關聯存於 wp_term_relationships,需先將 term_taxonomy_id 寫回 wp_posts.post_category:
UPDATE wp_posts, wp_term_relationships
SET wp_posts.post_category = wp_term_relationships.term_taxonomy_id
WHERE wp_posts.id = wp_term_relationships.object_id
AND wp_term_relationships.term_taxonomy_id IN (
SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE taxonomy = 'category'
);
INSERT INTO blog_Article (log_ID, log_CateID, log_AuthorID, log_Level, log_Url,
log_Title, log_Intro, log_Content, log_PostTime, log_CommNums)
SELECT id, post_category, post_author, 4, id,
post_title, post_excerpt, post_content, post_date, comment_count
FROM wp_posts;
blog_Article、blog_Category 即完成遷移。少量資料亦可考慮匯出 XML 再匯入。