搬回WordPress
- 八月 30th, 2007
- 7,090Views
- Posted in 誌中誌
- Write comment
歷經了三天不眠不休、夙夜匪懈、水深火熱,終於與好朋友Google大神一起完成了從F2blog轉移到Wordpress的艱鉅任務。
因為過程很複雜,幾乎是土法煉鋼慢慢轉,只能大略說一下過程:
- 在F2blog用RSS匯出後,以EmEditor開啟xml,執行巨集內容
- 匯入WP,發現迴響沒有匯入
- 用phpmyadmin,比對F2與WP的欄位、資料表名稱(只有兩個資料表要比對,f2blog_logs之於wp_posts,f2blog_comments之於wp_comments),交叉比對、修改,讓兩邊資料都相同–這邊是最久的部份,我有將卡最大的地方筆記下來(見附註)
- 修改完成把F2資料表匯入到WP的就完成了,我沒有注意到文章分類錯誤的問題,所以現在要把一千兩百多篇文章整理分類(囧),如果細心點可以避免
附註:
- 轉換unixtime
UPDATE `f2blog_comments` SET `postTime` = FROM_UNIXTIME( `postTime` ) WHERE `f2blog_comments`.`id` >=1 LIMIT 99999
UPDATE `f2blog_logs` SET `postTime` = FROM_UNIXTIME( `postTime` ) WHERE `f2blog_logs`.`id` >=1 LIMIT 999999 ; - 複製文章發表時間至gmt欄位
update `wp_posts` set `post_date_gmt`= `post_date` - 轉換unixtime之前先轉換欄位屬性
ALTER TABLE `f2blog_comments` CHANGE `postTime` `postTime` VARCHAR( 100 ) NOT NULL DEFAULT '0' - 時間欄位轉換完成後必須改回datetime
ALTER TABLE `f2blog_comments` CHANGE `postTime` `postTime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' - comment 狀態
UPDATE `wp_comments` SET `comment_approved` = '1' WHERE `wp_comments`.`comment_ID` >=1 LIMIT 9999 ;


nonsense:
你好,因為我使用的方法是非常非常笨的方法,所以步驟很多也不知道該怎麼寫詳細步驟…簡單說是把一支php程式可以做到的東西,直接在資料庫慢慢搬,建議對資料庫有懂一點點再使用
1. 這步驟是可以跳過的,直接用phpmyadmin的方法即可
2. 請一定要備份好原本的資料庫,有備分之後亂玩都可以:)
比對的方法:
假如 wp資料欄位是wp_comment,f2欄位是f2_comment,就把f2欄位修改成wp_comment
假如 wp有ABCD欄位,f2沒有該欄位對應的值,那就補上一個空欄位
以此類推,全部資料表都這樣修改,完成之後再將資料表名稱也改成與wp一樣
這樣就完成了
3. 文章分類理論上是可以順利轉移,因為我自己的轉換過程中漏了一點步驟,導致分類錯誤,所以我還是用手動把兩千三百多篇文章一個一個重新分類了Orz
至於tag功能…我轉的時候wp的tag功能還在測試階段,所以就沒動它了,稍看了一下兩者結構不太一樣,所以可能要多費點心思轉移tag
功力太淺
還是不太會轉換
不過還是要說聲謝謝~~^^
學長 / 學姐, 我有成功換了
不過有兩件事想確認
1. 關於你附註那裡說的 update command, 我只要做那些嗎? 不用再update其他?
2. 我wp和f2都update了, 我再把f2 export, 之後再import進去wp database
我目前出現f2blog_xxxx和wp_xxxx兩張不同的table
我該怎麼處理他們?要怎麼轉換?這一步我就不太明白了
還有一件事, 後來我再考慮的時候再參考這篇(先做了你那篇再做這篇)
http://www.zhuaxia.com/item/489871383
不知道怎樣..
因為我對DB方面的轉換上有一些懷疑, 就是到底我的那些F2BLOG TABLE能不能刪
或者到底我有沒有轉進去
這也問題了留言那些東西有沒有轉入
jwxie:
1. 要喔要喔,因為這篇只是筆記性質,所以沒寫那麼多
2. 這樣就完成了吧,照wp安裝方法直接用這個資料庫就可以了
3. 兩邊的欄位(注意是資料表欄位)內容、排序、名稱等等都完全相同就可以了,先把資料庫跟wp連接看看有沒有出什麼問題,如果沒有問題,那f2 table就能刪掉了