La classe GraphDatabaseService
semble ne pas fournir de méthode pour supprimer/effacer la base de données. Y at-il d'autres moyens de supprimer/effacer la base de données intégrée actuelle avec Java?Comment faire pour supprimer la base de données intégrée neo4j avec Java?
Répondre
Il suffit d'effectuer un GraphDatabaseService.shutdown() et après son retour, supprimez les fichiers de base de données (en utilisant le code this).
Vous pouvez également utiliser getAllNodes() pour parcourir tous les nœuds, supprimer leurs relations et les nœuds eux-mêmes. Peut-être éviter de supprimer le nœud de référence.
Si votre cas d'utilisation est en cours de test, vous pouvez utiliser le ImpermanentGraphDatabase, qui supprimera la base de données après l'arrêt.
Pour utiliser ImpermanentGraphDatabase, ajoutez le fichier jar/dependency de neo4j-kernel tests à votre projet. Recherchez le fichier dont le nom se termine par "tests.jar" on maven central.
Je pense que le moyen le plus simple est de supprimer un répertoire avec la base de données neo4j. Je le fais dans mes tests de junit après avoir exécuté tous les tests. Voici une fonction que j'utilise où fichier est le répertoire Neo4j:
public static void deleteFileOrDirectory(final File file) {
if (file.exists()) {
if (file.isDirectory()) {
for (File child : file.listFiles()) {
deleteFileOrDirectory(child);
}
}
file.delete();
}
}
Je pense que je l'ai trouvé sur le wiki Neo4j. J'ai trouvé dans this discussion une autre solution. Vous pouvez utiliser Blueprint API, qui fournissent la méthode clear.
Comme dit nawroth, pour le test, vous devez utiliser la base de données ImpermanentGraph. Il corrige à peu près tous vos problèmes.
Si vous ne testez pas, il y a vraiment deux façons. J'ai généralement deux méthodes à ma disposition. L'une est la méthode clearDB, dans laquelle je supprime récursivement le chemin DB. J'utilise la bibliothèque FileUtils pour cela, et il est à peu près une seule ligne de code:
FileUtils.deleteRecursively(new File(DB_PATH));
L'autre est de supprimer tous les noeuds dans la base de données SAUF LA REFERENCE NODE, en utilisant la méthode removeAllNodes. Il y a une requête simple pour cela, que vous exécutez comme ceci:
engine.execute("START n = node(*), ref = node(0) WHERE n<>ref DELETE n");
Important à noter est que vous devez appeler la méthode clearDB avant de créer un nouvel objet EmbeddedGraphDatabase. La méthode removeAllNodes est appelée après que vous avez créé cet objet.
Il y a une classe d'aide
Neo4jHelper.cleanDb(db);
(il vient de org.springframework.data.neo4j.support.node.Neo4jHelper et db vous faites référence est un GraphDatabaseService)
Vous avez également la capacité de le vider:
Neo4jHelper.dumpDb();
- 1. Persistance de la base de données intégrée Java
- 2. Comment faire pour supprimer une ligne dans la base de données avec le bouton Supprimer
- 3. Comment faire le versionnement d'une base de données graphique comme neo4j
- 4. Base de données intégrée pour l'application .NET
- 5. Lignes directrices pour l'implémentation de la couche du gestionnaire de base de données (neo4j) en Java
- 6. Base de données intégrée pour .net
- 7. Supprimer la chaîne intégrée
- 8. Base de données intégrée dans l'application Java EE
- 9. La base de données Neo4j ne persiste pas avec Spring Data Neo4j
- 10. Comment faire un écouteur de base de données avec Java?
- 11. données de printemps neo4j utilisent la base de données existante
- 12. Base de données java open source nosql intégrée
- 13. Application de base de données intégrée WPF
- 14. Différence entre la base de données graphique: Neo4j & AllegroGraph
- 15. comment développer la base de données Neo4j interface utilisateur Web
- 16. Créer deux instances de la même base de données Neo4j
- 17. Comment déployer une application Java Swing avec une base de données JavaDB intégrée?
- 18. Comment importer une base de données GraphML dans Neo4J embarqué avec Java?
- 19. Neo4j recherche de base de données
- 20. Base de données intégrée ASP.NET MVC 2
- 21. Comment faire pour supprimer la virgule de TextField en Java
- 22. Comment faire pour supprimer la duplication de données dans DataGridView
- 23. empaquetage et déploiement de l'application de bureau Java avec base de données intégrée
- 24. Quelle base de données intégrée compatible Hibernate utiliser pour l'application Java Swing?
- 25. neo4j erreurs de cohérence de la base de données
- 26. Comment ouvrir le gui hsql pour une base de données intégrée dans un programme java?
- 27. Comment faire pour supprimer des caractères de fin de champ dans la base de données MySql
- 28. Application Java pour faire une sauvegarde de base de données
- 29. Base de données intégrée dans Qt
- 30. framework e-commerce pour Java et Neo4j comme base de données
Y a-t-il un moyen autre que de supprimer des fichiers? – zbdiablo
Voir http://wiki.neo4j.org/content/Testing_with_Neo4j#Use_the_ImpermanentGraphDatabase – DNA