为什么cleandb扩展拒绝删除我的neo4j图形数据库?

为什么cleandb扩展拒绝删除我的neo4j图形数据库?,neo4j,neo4django,Neo4j,Neo4django,当尝试用延长件(neo4j 1.8)吹扫(1.8.2)时,失败: [path] ? curl -v -X DELETE 'http://localhost:7475/db/cleandb/12sE$lkj3%' * About to connect() to localhost port 7475 (#0) * Trying 127.0.0.1... * Connected to localhost (127.0.0.1) port 7475 (#0) > DELETE /db/cle

当尝试用延长件(neo4j 1.8)吹扫(1.8.2)时,失败:

[path] ? curl -v -X DELETE 'http://localhost:7475/db/cleandb/12sE$lkj3%'
* About to connect() to localhost port 7475 (#0)
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 7475 (#0)
> DELETE /db/cleandb/12sE$lkj3% HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:7475
> Accept: */*
> 
< HTTP/1.1 500 Internal Server Error
< Content-Length: 0
< Server: Jetty(6.1.25)
< 
* Connection #0 to host localhost left intact
我会很方便地添加cleandb标签,但我缺乏1500的声誉

有什么想法吗?提前谢谢

编辑 (我使用cleandb的原因是在neo4django中设置单元测试)。
/EDIT

我认为它只适用于高达1.7的Neo4j版本

不再更新了b/c您现在可以使用cypher进行清理,请参见:

start n=node(*)
匹配n-[r?]->()
其中id(n)0
删除n,r

Hm,我有cleandb扩展在本地针对1.8.2和1.9工作。例如,您可以运行

from neo4django.db import connection
from pdb import set_trace; set_trace()
connection.cleandb()
跟踪
cleandb
Python调用,它会得到一个200和相应的响应体

{\n  "node-indexes" : [ ],\n  "nodes" : 4,\n  "relationship-indexes" : [ ],\n  "relationships" : 0,\n  "maxNodesToDelete" : 1000\n}
我不确定curl和Python调用之间的区别是什么——有没有可能在模块中尝试上面的方法,运行它,看看会发生什么

编辑:

cleandb扩展是非托管的,因此您不能(IIRC?)将URL设置为'/db/cleandb',它需要位于自己的根目录上-我使用'/cleandb'。如果有帮助的话,我会的

编辑:


哦,别在意,“/db/”URL似乎很好用。也许你可以使用“install_local_neo4j.bash”脚本()来安装一个neo4j的副本,并以同样的方式进行设置,如果这样对你有效的话?如果是这样的话,也许我们可以看到设置的不同…

实际上,1.8有一个特定的版本,(我使用这个版本来匹配我的neo4j 1.8.2(我使用这个版本是因为neo4django是针对这个版本进行测试的).事实上,我偶然发现了cleandb,因为它是在neo4django@ASzneo4django master也针对1.9RC1进行了测试。我一直想将Travis CI构建从1.9RC1更新到1.9,但我非常确定一切仍然有效,因为我在开发时针对1.9进行了测试。我会立即切换并更新docs.@Matt,我知道
cleandb
不是你的项目,但是你知道为什么我的cleandb设置不起作用吗?我错过了什么吗?(特别是当我使用1.8.2来保护neo4django时)@MichaelHunger:如果我在
1.9
的控制台中输入这个密码查询,我会收到一条错误消息,节点无法删除,因为仍然有关系连接到它们。你能更新查询以使其工作吗?哈!太愚蠢了!我从密钥中删除了
$
%
符号,现在它可以工作了。或者cleandb不支持密钥中的特殊字符,或者URL编码出了问题-可能与浏览器不同,
curl
本身不支持,我应该已经提供了URL编码的URL。实际上,现在我怀疑
$
是罪魁祸首(尽管两者在URL中都有特殊含义)好吧,我想我也想遵循好的密码准则来拥有特殊的字符,而不仅仅是字母数字…:-)@Michael Hunger:你能证实这一点吗?
from neo4django.db import connection
from pdb import set_trace; set_trace()
connection.cleandb()
{\n  "node-indexes" : [ ],\n  "nodes" : 4,\n  "relationship-indexes" : [ ],\n  "relationships" : 0,\n  "maxNodesToDelete" : 1000\n}