Parece que la clase GraphDatabaseService
no proporciona ningún método para colocar/borrar la base de datos. ¿Hay algún otro medio para eliminar/borrar la base de datos incrustada actual con Java?¿Cómo soltar la base de datos incrustada neo4j con java?
Respuesta
Simplemente realice un GraphDatabaseService.shutdown() y después de que haya regresado, elimine los archivos de la base de datos (usando el código como this).
También puede usar getAllNodes() para iterar sobre todos los nodos, eliminar sus relaciones y los nodos. Tal vez evite borrar el nodo de referencia.
Si su caso de uso está probando, entonces podría usar el ImpermanentGraphDatabase, que borrará la base de datos después del cierre.
Para usar ImpermanentGraphDatabase, agregue el archivo neo4j-kernel prueba jar/dependency a su proyecto. Busque el archivo con un nombre que termine con "tests.jar" on maven central.
Creo que la manera más fácil es eliminar un directorio con la base de datos neo4j. Lo hago en mis pruebas junit después de ejecutar todas las pruebas. Aquí es una función que utilizo en archivo es el directorio Neo4j:
public static void deleteFileOrDirectory(final File file) {
if (file.exists()) {
if (file.isDirectory()) {
for (File child : file.listFiles()) {
deleteFileOrDirectory(child);
}
}
file.delete();
}
}
Creo que he encontrado en Neo4j wiki. He encontrado en this discussion otra solución. Puede usar Blueprint API, que proporciona el método claro.
Como dijo nawroth, para las pruebas debe usar la base de datos ImpermanentGraphDatabase. Es casi auto-repara todos tus problemas.
Si no está probando, hay dos maneras realmente. Generalmente tengo dos métodos disponibles para mí. Uno es el método clearDB, en el cual borro recursivamente la ruta DB. Yo uso la biblioteca FileUtils para esto, y es más o menos una sola línea de código:
FileUtils.deleteRecursively(new File(DB_PATH));
El otro es para eliminar todos los nodos de la base de datos excepto nudo de referencia, utilizando el método removeAllNodes. Hay una consulta sencilla para esto, que se ejecuta como esto:
engine.execute("START n = node(*), ref = node(0) WHERE n<>ref DELETE n");
importante a destacar es que usted tiene que llamar al método clearDB Antes de crear un nuevo objeto EmbeddedGraphDatabase. El método removeAllNodes se llama DESPUÉS de haber creado este objeto.
Hay una clase de ayuda
Neo4jHelper.cleanDb(db);
(se trata de org.springframework.data.neo4j.support.node.Neo4jHelper y el PP se hace referencia es un GraphDatabaseService)
También tiene la capacidad de volcarlo:
Neo4jHelper.dumpDb();
- 1. neo4j: ¿Cómo cambiar la base de datos?
- 2. Restablecer la base de datos H2 incrustada periódicamente
- 3. Base de datos incrustada (Java pura) para Clojure
- 4. Base de datos incrustada para la aplicación de Windows 8
- 5. neo4j - base de datos de gráficos junto con una base de datos relacional?
- 6. ¿Cómo colocar todas las tablas en la base de datos sin soltar la base de datos?
- 7. ¿Convertir la base de datos Neo4j a XML?
- 8. cómo soltar la base de datos en sqlite?
- 9. ¿Cómo puedo migrar mi base de datos con raíles a la primera revisión sin soltar primero la base de datos?
- 10. búsqueda de texto completo con la base de datos incrustada en Delphi
- 11. Configurando una base de datos Derby incrustada en una aplicación Java independiente
- 12. ¿Qué base de datos incrustada tiene máxima compatibilidad con SQL y compatibilidad con concurrencia?
- 13. base de datos incrustada java w/capacidad de almacenar como un archivo
- 14. ¿Cuándo se llama una base de datos como base de datos incrustada?
- 15. Base de datos de gráficos en Java (que no sea Neo4J)
- 16. Diferencia entre la base de datos de gráficos: Neo4j y AllegroGraph
- 17. Incrustar la base de datos h2 de Java programáticamente
- 18. Conexión a neo4j con ColdFusion
- 19. ¿Una base de datos incrustada no relacional con una licencia de software libre permisiva?
- 20. Cómo mapear la estructura de datos XML a la base de datos con JPA (Java EE)
- 21. Proteger contraseña incrustada
- 22. Cómo conectarme a un servidor neo4j instalado localmente usando Java
- 23. ¿Cómo hacer un oyente de base de datos con Java?
- 24. Cómo modelar relaciones del mundo real en una base de datos de gráficos (como Neo4j)?
- 25. Modelamiento de Neo4j (o cualquier otra base de datos de gráficos)
- 26. Convierta XML a la base de datos con Java
- 27. ¿La base de datos incrustada de Spring admite dialectos SQL diferentes?
- 28. ¿Cómo se compara FlockDB con neo4j?
- 29. ¿Un buen marco para representar la ontología dentro de una base de datos neo4j?
- 30. Buscando orientación sobre la base de datos .NET incrustada (como db4o, NHibernate o RavenDB)
¿Hay alguna manera además de eliminar archivos? – zbdiablo
Ver http://wiki.neo4j.org/content/Testing_with_Neo4j#Use_the_ImpermanentGraphDatabase – DNA