问题
Is it possible to create/delete different databases in the graph database Neo4j like in MySQL? Or, at least, how to delete all nodes and relationships of an existing graph to get a clean setup for tests, e.g., using shell commands similar to rmrel
or rm
?
回答1:
You can just remove the entire graph directory with rm -rf
, because Neo4j is not storing anything outside that:
rm -rf data/*
Also, you can of course iterate through all nodes and delete their relationships and the nodes themselves, but that might be too costly just for testing ...
回答2:
even more simple command to delete all nodes and relationships:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
回答3:
From Neo4j 2.3,
We can delete all nodes with relationships,
MATCH (n)
DETACH DELETE n
Currently there is no any option to create multiple databases in Noe4j. You need to make multiple stores of Neo4j data. See reference.
回答4:
Creating new Database in Neo4j
Before Starting neo4j community click the browse option

and choose a different directory


and click start button.

New database created on that direcory
回答5:
quick and dirty way that works fine:
bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start
回答6:
For anyone else who needs a clean graph to run a test suite - https://github.com/jexp/neo4j-clean-remote-db-addon is a great extension to allow clearing the db through a REST call. Obviously, though, don't use it in production!
回答7:
Run your test code on a different neo4j instance.
- Copy your neo4j directory into a new location. Use this for testing. cd into the new directory.
- Change the port so that you can run your tests and use it normally simultaneously. To change the port open
conf/neo4j-server.properties
and setorg.neo4j.server.webserver.port
to an unused one. - Start the test server on setup. Do
./neo4j stop
andrm -rf data/graph.db
on teardown.
For more details see neo4j: How to Switch Database? and the docs.
回答8:
In Neo4j 2.0.0 the ? is no longer supported. Use OPTIONAL MATCH instead:
START n=node(*)
OPTIONAL MATCH (n)-[r]-()
delete n,r;
回答9:
Easiest answer is: NO
The best way to "start over" is to
- move to another empty data folder
or
- close Neo4j completely
- empty the old data folder
- restart Neo4j and set the empty folder as the data folder
There is a way to delete all nodes and relationships (as described here)
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
回答10:
In 2.0.0 -M6 You can execute the following Cypher script to delete all nodes and relations:
start n=node(*)
match (n)-[r?]-()
delete n,r
回答11:
As of version 3 I believe it is now possible to create separate database instances and thus their location is slightly different.
Referring to:https://neo4j.com/developer/guide-import-csv/
The --into retail.db is obviously the target database, which must not contain an existing database.
On my Ubuntu box the location is in:
/var/lib/neo4j/data/databases
where I currently see only graph.db
which I believe must be the default.
回答12:
You can delete your data files and if you want to go through this way, I would recommend delete just your graph.db, for example. Otherwise your are going to mess your authentication info.
来源:https://stackoverflow.com/questions/4498523/how-to-delete-create-databases-in-neo4j