2016-05-30 3 views
8

私はPostgresからGraph Databaseへのデータの移行を手動で行っています。AttributeError: 'Graph'オブジェクトにPostgressからNeo4j(グラフデータベース)へのデータの移行に 'cypher'属性がありません

私は下のスクリプトを書いている:私はバージョン2.0.8にpy2neoを更新することで解決し

AttributeError: 'Graph' object has no attribute 'cypher'

この問題:

import psycopg2 
from py2neo import authenticate, Graph 

authenticate("localhost:7474", "neo4j", "password") 
n4j_graph = Graph("http://localhost:7474/db/data/") 


try: 
    conn=psycopg2.connect("dbname='db_name' user='user' password='password'") 
except: 
    print "good bye" 

cur = conn.cursor() 
try: 
    cur.execute("""SELECT * from table_name""") 
except: 
    print "not found" 
rows = cur.fetchall() 


for row in rows: 
    username = row[4] 
    email = row[7] 
    s = '''MERGE (u:User { username: "%(username)s"}) MERGE (e:Email { email: "%(email)s"}) CREATE UNIQUE (u)-[:BELONGS_TO]->(e)''' %{"username": username, "email": email} 
    print s 
    n4j_graph.cypher.execute(s) 

エラー。

pip uninstall py2neo 
pip install py2neo==2.0.8 

私はpy2neoのマニュアルを参照して、以下のい。

生産のために、私はまだ取得していますが:

AttributeError: 'Graph' object has no attribute 'cypher'

GET 404 response

何の問題になることができますか?

答えて

8

この問題もありました。私の場合、py2neo v2のドキュメントを見ていましたが、私のマシンにはpy2neo v3がインストールされていました。あなたのpy2neoバージョンを確認し、.RUN( {クエリ}

The previous version of py2neo allowed Cypher execution through Graph.cypher.execute(). This facility is now instead accessible via Graph.run() and returns a lazily-evaluated Cursor rather than an eagerly-evaluated RecordList.

.cyper( {クエリ} を交換する必要があります
0

私は問題を解決しました。 問題のバージョンはpy2neoです。バージョン2.08はV2の最新版ですが、私はバージョン3をインストールしました。

py2neo許可されたサイファー実行Graph.cypher.execute()

pip uninstall py2neo 
pip install py2neo==2.0.8 
関連する問題