Comment supprimer / créer des bases de données dans Neo4j?
est-il possible de créer/supprimer différentes bases de données dans la base de données graphique Neo4j comme dans MySQL? Ou, au moins, comment supprimer tous les noeuds 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
?
12 réponses
vous pouvez simplement supprimer tout le répertoire graphique avec rm -rf
, parce que Neo4j ne stocke rien en dehors de cela:
rm -rf data/*
aussi, vous pouvez bien sûr itérer à travers tous les noeuds et supprimer leurs relations et les noeuds eux-mêmes, mais cela pourrait être trop coûteux juste pour les essais ...
commande encore plus simple pour supprimer tous les noeuds et les relations:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
Création d'une nouvelle Base de données Neo4j
avant de lancer la communauté neo4j, cliquez sur l'option de navigation
et choisir un répertoire différent
et cliquez sur le bouton démarrer.
Nouveau base de données créée sur cette direcory
De Neo4j 2.3,
nous pouvons supprimer tous les noeuds avec des relations ,
MATCH (n)
DETACH DELETE n
il n'y a actuellement aucune option pour créer plusieurs bases de données dans Noe4j. Vous devez faire plusieurs magasins de données Neo4j. Voir référence .
pour toute autre personne qui a besoin d'un graphe propre pour exécuter une suite de test - https://github.com/jexp/neo4j-clean-remote-db-addon est une grande extension pour permettre de nettoyer le db par un appel de repos. Évidemment, ne l'utilisez pas dans la production!
chemin rapide et sale qui fonctionne bien:
bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start
lancez votre code de test sur une instance neo4j différente.
- Copiez votre répertoire neo4j dans un nouvel emplacement. Utilisez ceci pour les tests. cd dans le nouveau répertoire.
- changez le port pour que vous puissiez exécuter vos tests et l'utiliser normalement simultanément. Pour changer le port, ouvrez
conf/neo4j-server.properties
et réglezorg.neo4j.server.webserver.port
sur un port non utilisé. - démarrer le serveur de test sur setup. Faire
./neo4j stop
etrm -rf data/graph.db
sur le démontage.
pour plus de détails, voir neo4j: Comment changer de base de données? et le docs .
Dans Neo4j 2.0.0 l' ? n'est plus supporté. Utilisez la correspondance optionnelle à la place:
START n=node(*)
OPTIONAL MATCH (n)-[r]-()
delete n,r;
la réponse la plus facile est: Non
La meilleure façon de "recommencer" est à
- déplacer vers un autre vide du dossier de données
ou
- fermer Neo4j complètement
- vider l'ancien dossier de données
- redémarrer Neo4j et définir le dossier vide comme le dossier de données
il y a un moyen pour supprimer tous les noeuds et les relations (comme décrit ici )
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
dans 2.0.0 -M6 vous pouvez exécuter le script de Cypher suivant pour supprimer tous les noeuds et les relations:
start n=node(*)
match (n)-[r?]-()
delete n,r
à partir de la version 3 je crois qu'il est maintenant possible de créer des instances de base de données séparées et donc leur emplacement est légèrement différent.
se référant à: https://neo4j.com/developer/guide-import-csv /
--dans la vente de détail.db est évidemment la base de données cible, qui ne doit pas contenir une base de données existante.
Sur mon Ubuntu zone de l'emplacement:
/var/lib/neo4j/data/databases
où je ne vois actuellement que graph.db
qui, je crois, doit être la valeur par défaut.
vous pouvez supprimer vos fichiers de données et si vous voulez passer par cette voie, je recommande supprimer seulement votre graphique.db, par exemple. Sinon, vous allez salir vos informations d'authentification.