Postgresからグラフデータベースへのデータの移行に手動で取り組んでいます。
私は以下のスクリプトを書きました:
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)
エラー:
AttributeError: 'Graph'オブジェクトに属性 'cypher'がありません
この問題は、py2neoをバージョン2.0.8に更新することで解決しました。
pip uninstall py2neo
pip install py2neo==2.0.8
py2neo のドキュメントに従っています。
生産のために私はまだ得ています:
AttributeError: 'Graph'オブジェクトに属性 'cypher'がありません
GET404応答
何が問題になる可能性がありますか?
問題を解決しました。問題は_py2neo
_のバージョンにありました。バージョン2.08がV2の最新版であるのに、バージョン3をインストールしました。
py2neoは、Graph.cypher.execute()
を介してCypherの実行を許可しました。
_pip uninstall py2neo
pip install py2neo==2.0.8
_