2017-09-13 4 views
1

utilisant v2 py2neo je pourrais mettre cela en __init__.pymise en Neo4j contraintes d'unicité dans py2neo v3

graph.cypher.execute("CREATE CONSTRAINT ON (n:User) ASSERT n.username IS UNIQUE") 

Pourquoi v3 py2neo

graph.run("CREATE CONSTRAINT ON (n:User) ASSERT n.username IS UNIQUE") 

échouer avec cette erreur?

TypeError: unbound method run() must be called with Graph instance as first argument (got str instance instead)

+1

Comment déclarez-vous la variable 'graph'? –

+0

Wow! Vous avez repéré ma faute de frappe dans le message d'erreur ... J'ai oublié les crochets dans le graphique = Graph() Comment faites-vous cela? – user1613312

+1

Je pense que vous avez répondu à ma question mais je ne peux pas vous donner de crédit pour un commentaire? – user1613312

Répondre

0

Vous devriez déclarer la variable cette façon:

>>> graph = Graph() 

au lieu de (sans les crochets):

>>> graph = Graph 

En outre, alternativement à la méthode graph.run() vous pouvez utiliser la graph.schema.create_uniqueness_constraint() méthode, comme ceci:

>>> graph.schema.create_uniqueness_constraint("User", "username")