Comment supprimer / créer des bases de données dans Neo4j?
-
12-10-2019 - |
Question
Est-il possible de créer / supprimer des bases de données différentes dans la base de données graphique Neo4j comme dans MySQL? Ou, au moins, comment supprimer tous les nœuds et les relations d'un graphe existant pour obtenir une configuration propre pour les tests, par exemple, en utilisant des commandes shell similaires à rmrel
ou rm
?
La solution
Vous pouvez simplement supprimer le répertoire entier graphique avec rm -rf
, parce que Neo4j ne stocke rien en dehors de ce qui suit:
rm -rf data/*
En outre, vous pouvez bien sûr itérer à travers tous les nœuds et de supprimer leurs relations et les nœuds eux-mêmes, mais peut-être trop coûteux juste pour tester ...
Autres conseils
commande encore plus simple à supprimer tous les nœuds et les relations:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
De Neo4j 2.3,
Nous pouvons supprimer tous les noeuds avec relations ,
MATCH (n)
DETACH DELETE n
À l'heure actuelle il n'y a pas toute possibilité de créer plusieurs bases de données Noe4j. Vous devez faire plusieurs magasins de données Neo4j. Voir .
Création d'une nouvelle base de données dans Neo4j
Avant de commencer communauté Neo4j cliquez sur l'option de navigation
et choisissez un autre répertoire
et cliquez sur le bouton de démarrage.
Nouvelle base de données créée sur cette direcory
moyen rapide et sale qui fonctionne très bien:
bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start
Pour toute autre personne qui a besoin d'un graphique propre à exécuter une suite de tests - https://github.com est une grande extension pour permettre la compensation du db par un appel REST / JEXP / Neo4j-nettoyage-db-distance addon . De toute évidence, cependant, ne pas l'utiliser dans la production!
Exécuter votre code de test sur une autre instance de Neo4j.
- Copiez votre répertoire Neo4j dans un nouvel emplacement. Utilisez-le pour tester. cd dans le nouveau répertoire.
- Modifier le port de sorte que vous pouvez exécuter vos tests et l'utiliser normalement en même temps. Pour changer le port
conf/neo4j-server.properties
ouvert et ensembleorg.neo4j.server.webserver.port
à un un utilisé. - Démarrer le serveur de test sur la configuration. Faites
./neo4j stop
etrm -rf data/graph.db
sur teardown.
Pour plus de détails voir Neo4j: Comment passer la base de données et docs .
Dans Neo4j 2.0.0 le? ne sont plus pris en charge. Utilisez EN OPTION MATCH à la place:
START n=node(*)
OPTIONAL MATCH (n)-[r]-()
delete n,r;
réponse est plus simple: NON
La meilleure façon de « repartir à zéro » est à
- passer à une autre données vide dossier
ou
- fermer complètement Neo4j
- vider l'ancien dossier de données
- et redémarrer Neo4j régler le dossier vide que le dossier de données
Il y a un moyen de supprimer tous les nœuds et les relations (comme décrit )
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
2.0.0 -M6 Vous pouvez exécuter le script Cypher comme suit pour supprimer tous les nœuds et les relations:
start n=node(*)
match (n)-[r?]-()
delete n,r
de la version 3 je crois qu'il est maintenant possible de créer des instances de base de données distincts et donc leur emplacement est légèrement différent.
En se référant à: https://neo4j.com/developer/guide-import-csv /
Le retail.db --into est évidemment la base de données cible, qui ne doit pas contenir une base de données existante.
Sur mon Ubuntu box l'emplacement est:
/var/lib/neo4j/data/databases
où je vois actuellement que graph.db
que je crois doit être la valeur par défaut.
Vous pouvez supprimer vos fichiers de données et si vous voulez passer par cette façon, je recommanderais simplement supprimer votre graph.db, par exemple. Sinon, votre vont gâcher vos informations d'authentification.