1. 程式人生 > >discuz x3.2 論壇資料遷移

discuz x3.2 論壇資料遷移

2011年 接觸discuz,搭建了一個地方入口網站,到如今也有6年多 了;

當初是 自己不想寫程式,開源的 功能也很強大 就用了。現在 版本經過多次升級後,灌水的問題 依然難以解決。

各種註冊機,發帖機 輪番攻擊。站點中 垃圾帖 管理很費精力。嚴重影響站點質量。

目前 升級到最新版本後任然沒有解決這個問題。

於是考慮 自己寫一個,剛好 採用新的模式,改變下論壇的定位;

文章+本地商品展示 的模式。

所以之前的發文章還是要保留下來 遷移到新寫的網站 資料庫。

另外一種方式就是,將 老論壇 設定禁止發帖,作為 歷史版本回顧檢視,就不用遷移資料了。

遷移目標:

使用者 忽略; 

主題;

文章;

 文章id,分類,二級分類,文章標題,釋出時間,作者,內容,關鍵字;回覆內容,封面圖片,檢視數量

先分享下我整理的sql 語句:

-- 查詢使用者的
 SELECT * FROM pre_ucenter_members

-- 主題列表 :主題id 上級論壇 主題分類id  分類資訊id
    SELECT tid,fid,typeid,sortid,author,authorid,`subject`,FROM_UNIXTIME(dateline),views,attachment FROM pre_forum_thread 
-- 主題對應的 回覆列表  

  SELECT pid,fid,tid,author,authorid,FROM_UNIXTIME(dateline),message,attachment,tags FROM pre_forum_post

--  聯合結果集
--  獲取帖子的主題和回覆資訊 fid 分類id,typeid 子分類,
  SELECT  t1.tid,t1.fid,t1.typeid,t1.author,t1.authorid,t1.`subject`,FROM_UNIXTIME(t1.dateline),t1.views,
  t2.author,t2.authorid,FROM_UNIXTIME(t2.dateline),t2.message,t2.tags
     FROM pre_forum_thread t1,pre_forum_post t2 WHERE t1.tid = t2.tid 
      LIMIT 10
     --  AND t1.tid=17305
--  查詢單個 示例
  SELECT t2.author,t2.authorid,FROM_UNIXTIME(t2.dateline),t2.message,t2.attachment,t2.tags
  FROM pre_forum_post t2 WHERE t2.tid =373
 


-- 根據主題id 獲取 附件對應的表
SELECT tableid FROM pre_forum_attachment WHERE tid =373
 
-- 獲取附件地址,根據 tableid確定分表表名,   aid是 附件id
SELECT aid,attachment FROM pre_forum_attachment_3 WHERE tid =373


-- 獲取文章 t1.contents分頁數量 pic  封面圖片
SELECT
t1.aid , t1.catid ,t1.uid,t1.username,t1.title,t1.author,t1.from,t1.fromurl,t1.summary,t1.pic,t1.contents, t2.content ,FROM_UNIXTIME(t1.dateline)
FROM pre_portal_article_title t1 , pre_portal_article_content t2
WHERE t1.aid  =t2.aid
AND t1.status =0
 
 LIMIT 10
 
-- 文章圖片
SELECT *  FROM pre_portal_attachment   LIMIT 20
WHERE aid =  15

SELECT attachid,attachment  FROM pre_portal_attachment  
WHERE aid =  4

pre_portal_attachment 門戶文章附件表


SELECT * FROM pre_portal_category ;-- 欄目表


更多表結構說明 請檢視 官方資料結構說明:

http://faq.comsenz.com/library/database/x3/x3_index.htm