MySQL のように、グラフ データベースNeo4jで異なるデータベースを作成/削除することはできますか? または、少なくとも、既存のグラフのすべてのノードと関係を削除して、テスト用のクリーンなセットアップを取得する方法、たとえば、rmrel
またはのようなシェル コマンドを使用する方法はrm
?
13 に答える
rm -rf
Neo4j はそれ以外に何も格納していないため、を使用してグラフ ディレクトリ全体を削除できます。
rm -rf data/*
また、もちろん、すべてのノードを繰り返し処理して、それらの関係とノード自体を削除することもできますが、テストするだけではコストがかかりすぎる可能性があります...
すべてのノードと関係を削除するさらに単純なコマンド:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
Neo4j で新しいデータベースを作成する
neo4j コミュニティを開始する前に、参照オプションをクリックします
別のディレクトリを選択します
そしてスタートボタンをクリック。
そのディレクトリに作成された新しいデータベース
うまく機能する迅速で汚い方法:
bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start
テスト スイートを実行するためにクリーンなグラフが必要な場合は、 https://github.com/jexp/neo4j-clean-remote-db-addonを使用すると、REST 呼び出しでデータベースをクリアできるようになります。ただし、明らかに、本番環境では使用しないでください。
別のneo4jインスタンスでテストコードを実行します。
- neo4jディレクトリを新しい場所にコピーします。これをテストに使用します。新しいディレクトリにcdします。
- テストを実行し、通常どおり同時に使用できるように、ポートを変更します。開いているポートを変更して、未使用のポート
conf/neo4j-server.properties
に設定します。org.neo4j.server.webserver.port
- セットアップ時にテストサーバーを起動します。分解して
./neo4j stop
ください。rm -rf data/graph.db
詳細については、neo4j:データベースを切り替える方法を参照してください。およびドキュメント。
最も簡単な答えは:いいえ
「最初からやり直す」ための最良の方法は、
- 別の空のデータ フォルダに移動する
また
- Neo4j を完全に閉じる
- 古いデータ フォルダを空にする
- Neo4jを再起動し、空のフォルダーをデータフォルダーとして設定します
すべてのノードと関係を削除する方法があります (ここで説明されているように)
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
バージョン 3 の時点で、個別のデータベース インスタンスを作成できるようになったため、それらの場所はわずかに異なります。
参考:https ://neo4j.com/developer/guide-import-csv/
--into Retail.db は明らかにターゲット データベースであり、既存のデータベースが含まれていてはなりません。
私のUbuntuボックスでは、場所は次のとおりです。
/var/lib/neo4j/data/databases
現在graph.db
、デフォルトである必要があると思われるものだけが表示されます。
データ ファイルを削除することができます。この方法を使用する場合は、たとえば、graph.db だけを削除することをお勧めします。そうしないと、認証情報が台無しになります。
非常に大きなデータベースがある場合、
`MATCH (n) DETACH DELETE n`
多くの時間がかかり、データベースがスタックする可能性もあります(使用しようとしましたが、非常に大きなデータベースでは機能しません)。Linuxサーバー上のより大きなNeo4jデータベースを削除する方法は次のとおりです。
まず、実行中の Neo4j データベースを停止します。
sudo neo4j stop
次に、neo4jフォルダーのdataフォルダー内のデータベースフォルダーとトランザクションフォルダーを削除します。では、 neo4jフォルダーはどこにありますか? を実行すると、neo4j 実行可能パスを見つけることができます。そのパスを通過するデータフォルダーを確認します ( neo4jフォルダー内にあります)。データフォルダー内に移動すると、データベースとトランザクションフォルダーが表示されます。
which neo4j
rm -rf databases/
rm -rf transactions/
Neo4j サーバーを再起動します
sudo neo4j start