一次删除所有trac页面

时间:2010-10-20 14:10:02

标签: trac

有没有办法清理,删除所有的wiki页面,这样我就可以拥有一个干净的索引,只有我创建的页面?

4 个答案:

答案 0 :(得分:3)

你可以像这样破解trac-admin:

#!/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

答案 1 :(得分:2)

预防措施:在之前进行经过验证的良好备份,用户对标准网页的更改清理为最终*)。

如果您可以获得直接数据库访问,则应键入以下简单SQL语句:

SELECT name FROM wiki WHERE author='trac';

它返回所有维基页面的名称

  1. 由Trac自己创建(自动在Trac环境创建别名'init'上)
  2. 稍后通过trac-admin CLI导入,加载或升级(trac-admin< env> wiki< action>)
  3. 您可以通过在适当的SQL语法中使用更多条件扩展语句来更改,即排除某些页面。

    当SELECT返回完全您所追求的页面时,您所要做的就是将同一语句更改为DELETE:

    DELETE FROM wiki WHERE author='trac';

    除了您的自定义维基页面之外的所有页面都会消失。

    *)通过在具有适当权限的终端会话中执行以下命令,可以随时恢复原始内容:

    trac-admin <env> wiki upgrade
    

答案 2 :(得分:0)

你可以简单地执行:

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

如果您希望使用图形工具更具选择性,可以使用适用于Linux和Windows的sqlitebrowser。

答案 3 :(得分:0)

如果使用sqlite作为数据库(trac的标准)。使用此命令删除带有作者trac的维基条目:

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