无法从janusgraph scheme

时间:2017-11-17 20:29:41

标签: gremlin gremlin-server janusgraph

我将gremlin-console连接到gremlin-server,后端使用janusGraph。 我想用multiplicity重新创建edgeLabel所以我用removeEdgeLabel()命令将脚本发送到gremlin-server以删除标签“hasNext”:

graph_creation_script="""
tx = graph.newTransaction();
g.V().drop().iterate();
g.E().drop().iterate();
g.tx().commit()

tx = graph.newTransaction();
a = tx.addVertex(label, "A");
b = tx.addVertex(label, "B");
tx.commit()

mgmt = graph.openManagement()
mgmt.getEdgeLabel("hasNext").remove()
// mgmt.makeEdgeLabel("hasNext").multiplicity(ONE2ONE).make()
//a.addEdge("hasNext",b);
mgmt.commit()
"""
:> @graph_creation_script

然后我将mgmt.getEdgeLabel("hasNext").remove()行注释掉,并从makeEdgeLabel(...)行中删除评论符号,以使用multiplicity(ONE2ONE)创建新标签:

...
// mgmt.getEdgeLabel("hasNext").remove()
mgmt.makeEdgeLabel("hasNext").multiplicity(ONE2ONE).make()
...

我收到错误:

Adding this property for key [~T$SchemaName] and value [rt▲hasNext] violates a uniqueness constraint [SystemIndex#~T$SchemaName]

所以似乎标签没有从架构中删除,但为什么会这样呢?

2 个答案:

答案 0 :(得分:0)

最后,我按命令删除所有架构/图形内容:

./bin/janusgraph.sh stop
./bin/janusgraph.sh clean

并且明确地定义了JanusGraph在gremlin-console中的操作:

:remote connect tinkerpop.server conf/remote.yaml
==>Configured localhost/10.11.221.123:8182
graph = JanusGraphFactory.open("conf/janusgraph-cassandra-es.properties")
g = graph.traversal()

答案 1 :(得分:0)

不确定,您现在需要这个答案,但是请您尝试一下

mgmt.getEdgeLabel('Bad_Name').remove()

我必须在

之后关闭图形连接
  

mgmt.commit()

当我再次检查时,边缘标签不存在。请让我知道它是否也适合您。我正在使用Janusgraph 0.3.0。