2010-10-20 43 views
1

有沒有辦法清理,刪除所有的wiki頁面,這樣我就可以有一個乾淨的索引,只有我創建的頁面?立即刪除所有trac頁面

+1

這是不完全清楚,如果要求是保持現有的自定義頁面,或者如果你問到剛剛擺脫所有的維基頁面的大多數答案提示。當然,保留所有頁面是一件好事,但有些像TitelIndex或RecentChanges可能是任何wiki的一部分,所以遲早你可能會重新發明它們。爲什麼不根據你喜歡的方式定製它們? – hasienda 2013-03-26 12:15:17

回答

3

可以圍繞TRAC管理員破解這樣的:

#!/bin/sh 

# extract the page list from trac (this filter matches only CamelCase words or numbers, 
# it will blow if there are pages which does not fit into this scheme) 
for site in `trac-admin /path/to/trac wiki list | sed -e 's/\([a-zA-Z0-9]*\).*/\1/'` 
do 
    # and remove every single page 
    trac-admin /path/to/trac wiki remove $site 
done 
+0

剛剛使用此命令刪除** ALL **維基頁面。感謝這個片段。要小心,它會刪除**每個**頁面!不僅是自動生成的。 – 2015-06-04 17:44:52

2

注意事項:做一個驗證,良好的備份之前,用戶更改爲標準的網頁清理是最後的*)。

只要你能夠獲得直接的數據庫訪問,你應該鍵入以下簡單的SQL語句:

SELECT name FROM wiki WHERE author='trac';

它返回所有的維基頁面

  1. 的Trac本身(在Trac系統自動創建的名稱環境創建別名'init')
  2. 稍後通過trac-admin CLI導入,加載或升級(trac-admin <env> wik我<行動>)

您可能會改變,即通過擴展語句與進一步的條件在適當的SQL語法中排除一些頁面。

當SELECT返回正是你後的網頁,所有你需要做的就是改變相同的語句爲DELETE:

DELETE FROM wiki WHERE author='trac';

所有,但你自定義的wiki頁面將會消失這一秒。

*)的原內容仍然可以在任何時候通過只在具有相應權限的終端會話執行以下命令恢復:

trac-admin <env> wiki upgrade 
0

您可以簡單地執行:

$ trac-admin /path/to/trac wiki remove * 

如果您想要使用圖形工具更具選擇性,您可以使用sqlitebrowser可用於Linux和Windows。

+0

你會如何避免在這裏刪除用戶頁面?你的建議會簡單地刪除所有頁面,顯然*不* OP意向。雖然在環境初始化上完成了,但這樣可以。無可否認,這方面的問題並不完全清楚。 – hasienda 2013-03-26 11:59:21

+0

這個命令不起作用:'錯誤:無效參數'並且它也不是這個問題的答案 – 2015-06-04 17:36:28

0

如果您使用sqlite作爲數據庫(trac的標準)。使用此命令刪除與作者TRAC維基條目:

sqlite3 /your/path/to/trac.db "DELETE FROM wiki WHERE author='trac'"