2010-10-20 86 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'"