1

当尝试使用cleandb扩展(对于 neo4j 1.8)清除neo4j(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

显然,我不仅得到了 500 错误代码,而且数据库也没有被清除。当然,插件的访问 URL 和 "secret-key" 设置为curl请求中使用的:

org.neo4j.server.thirdparty_jaxrs_classes=org.neo4j.server.extension.test.delete=/db/cleandb
org.neo4j.server.thirdparty.delete.key=12sE$lkj3%

我会方便地添加cleandb标签,但我缺乏 1500 的声誉。

有任何想法吗?提前致谢!

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

4

2 回答 2

2

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

from neo4django.db import connection
from pdb import set_trace; set_trace()
connection.cleandb()

并跟踪cleandbPython 调用,它会得到一个 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”。LMK 如果有帮助的话!

编辑:

哦,忽略这一点,'/db/' url 似乎工作正常。也许您可以使用“install_local_neo4j.bash”脚本(https://github.com/scholrly/neo4django/blob/master/install_local_neo4j.bash)来安装 Neo4j 的副本并以相同的方式进行设置,如果适用的话你?如果是这样,也许我们可以看到设置有何不同...

于 2013-06-03T18:59:09.910 回答
1

我认为它仅适用于最高 1.7 的 Neo4j 版本。

不再更新它 b/c 您现在可以使用 cypher 进行清理,请参阅: http: //neo4j.org/resources/cypher

start n=node(*)
match n-[r?]->()
where id(n) <> 0
delete n,r
于 2013-05-31T19:48:18.060 回答