2017-02-01 5 views
2

Neo4Jデータベースに対してコマンドラインから(バッチスケジューリングの目的で)Cypherクエリを実行する必要があります。neo4j-shell Cypherスクリプトを実行する例

私はこれを実行すると:

./neo4j-shell -file /usr/share/neo4j/scripts/query.cypher -path /usr/share/neo4j/neo4j-community-3.1.1/data/databases/graph.db 

を、私はこのエラーを取得する:

ERROR (-v for expanded information): 
     Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, /usr/share/neo4j/neo4j-community-3.1.1/data/databases/graph.db 

そのデータベース(ローカルホスト:7474)で実行されているのNeo4jインスタンスがあります。私はそれに対してクエリを実行するスクリプトが必要です。

注:これは、整理のため、original questionの分割です。

+0

このスクリプトはneo4jデータベースを実行している同じユーザーとして実行されますか? –

+0

はい、デフォルトユーザーを使用しています。これは問題ですか? – peleitor

+0

この場合、パスを指定する必要はありません。 –

答えて

1

neo4jサーバーの実行中にファイルからCypherステートメントを実行するには、APOCプロシージャapoc.cypher.runFile(file or url)を使用します。

「バッチスケジューリング」について言及しているので、Job management and periodic execution APOC手順が役立ちます。これらの手順では、apoc.cypher.runFileへの呼び出しを実行できます。

2

いいえ私は今、Neo4j-community-3.1.1の新しいインスタンスをスピンアップし、まったく同じ問題に遭遇しました。一括インポートツールを使用してデータベースを作成していたので、シェルを使用する前にデータベース用のディレクトリ(mkdir data/databases/graph.db)を作成する必要があります。

あなたがアクセスしようとしているデータベースに対してNeo4jプロセスのインスタンスが実行されている可能性があります。私にとって

、のNeo4jをシャットダウンして、明示的なパスでシェルを起動するには、働いていた:私はあなたがシェルとサーバーを実行の両方を持っていると考えていたが、どうやらそれはされていないいくつかの理由

cd /path/to/neo4j-community-3.1.1/ 
bin/neo4j stop ## assuming it is already running (may need a port specifier) 
bin/neo4j-shell -path data/databases/graph.db 

をケース。私が間違っていれば、誰かが私を修正することを願っています。

関連する問題