我在后端使用 janusGraph 连接到 gremlin-server 的 gremlin-console。我想重新创建具有多重性的 edgeLabel,所以我将脚本发送到 gremlin-server 并使用removeEdgeLabel()
命令删除标签“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]
所以似乎标签没有从模式中删除,但为什么会这样呢?