클래스 GraphDatabaseService
은 데이터베이스를 삭제/지우는 방법을 제공하지 않습니다. Java가있는 현재 내장 데이터베이스를 삭제/지울 수있는 다른 방법이 있습니까?java로 neo4j 임베디드 데이터베이스를 삭제하는 방법은 무엇입니까?
답변
GraphDatabaseService.shutdown()을 수행 한 다음 반환 한 후 this과 같은 코드를 사용하여 데이터베이스 파일을 제거합니다.
getAllNodes()을 사용하여 모든 노드에서 반복하고 관계 및 노드 자체를 삭제할 수도 있습니다. 아마도 참조 노드를 삭제하지 마십시오.
사용 사례가 테스트 중이라면 ImpermanentGraphDatabase을 사용하면 시스템 종료 후 데이터베이스가 삭제됩니다.
ImpermanentGraphDatabase를 사용하려면 neo4j-kernel 테스트 jar/dependencies를 프로젝트에 추가하십시오. "tests.jar"로 끝나는 이름의 파일을 찾습니다. on maven central.
가장 쉬운 방법은 neo4j 데이터베이스로 디렉토리를 삭제하는 것입니다. 모든 테스트를 마친 후 junit 테스트에서이 작업을 수행합니다.
public static void deleteFileOrDirectory(final File file) {
if (file.exists()) {
if (file.isDirectory()) {
for (File child : file.listFiles()) {
deleteFileOrDirectory(child);
}
}
file.delete();
}
}
내가 neo4j 위키에서 찾았 생각 : 여기 파일이 neo4j 디렉토리입니다 제가 사용하는 기능입니다. 나는 this discussion 다른 해결책에서 발견했다. 방법을 명확하게 제공하는 Blueprint API을 사용할 수 있습니다.
nawroth와 마찬가지로 테스트를 위해 ImpermanentGraphDatabase를 사용해야합니다. 거의 모든 문제를 자동으로 수정합니다.
테스트하지 않는 경우 실제로 두 가지가 있습니다. 나는 일반적으로 두 가지 방법을 사용할 수 있습니다. 하나는 clearDB 메소드입니다.이 메소드에서는 재귀 적으로 DB 경로를 삭제합니다. 나는이에 대한 Fileutils의 라이브러리를 사용하고, 거의 한 줄의 코드입니다 :
FileUtils.deleteRecursively(new File(DB_PATH));
다른 하나는 removeAllNodes 방법을 사용하여, 참조 노드를 제외하고 데이터베이스에있는 모든 노드를 제거하는 것입니다.
engine.execute("START n = node(*), ref = node(0) WHERE n<>ref DELETE n");
주의하는 것이 중요 새 EmbeddedGraphDatabase 객체를 만들기 전에 clearDB 메서드를 호출해야한다는 것입니다 :이 같은 실행이에 대한 간단한 쿼리가있다. 이 객체를 생성 한 후에 removeAllNodes 메서드가 호출됩니다.
도우미 클래스에게 있습니다
Neo4jHelper.cleanDb(db);
(이 org.springframework.data.neo4j.support.node.Neo4jHelper에서 제공하고 참조하는 DB가 GraphDatabaseService입니다) 당신은 또한이
덤프 기능 :
Neo4jHelper.dumpDb();
- 1. 안드로이드에서 데이터베이스를 삭제하는 방법은 무엇입니까?
- 2. 캐시 된 Android 데이터베이스를 삭제하는 방법은 무엇입니까?
- 3. 데이터베이스를 삭제하는 두 가지 방법의 차이점은 무엇입니까?
- 4. 임베디드 데이터베이스를 사용해야하는 경우
- 5. Java로 데이터베이스를 생성 한 다음 연결하고 쿼리하는 방법은 무엇입니까?
- 6. Grail의 HSQLDB 임베디드 데이터베이스를 마이 그 레이션
- 7. SQL Server 데이터베이스를 삭제하는 방법
- 8. 쿠키를 삭제하는 방법은 무엇입니까?
- 9. Neo4j 내보내기 트리
- 10. Neo4jPHP 및 CodeIgniter (Neo4j)
- 11. Neo4j Documentation
- 12. 하나의 neo4j 데이터베이스를 다른 데이터베이스로 효율적으로 내보내는 방법?
- 13. Java로 패키지를 문서화하는 방법은 무엇입니까?
- 14. Java로 사운드를 처리하는 방법은 무엇입니까?
- 15. Java로 이벤트를 보내는 방법은 무엇입니까?
- 16. Java로 개체를 복사하는 방법은 무엇입니까?
- 17. Java로 RMAN에 연결하는 방법은 무엇입니까?
- 18. Java로 GUI를 만드는 방법은 무엇입니까?
- 19. Java로 타이머를 만드는 방법은 무엇입니까?
- 20. Java로 양식을 처리하는 방법은 무엇입니까?
- 21. varchar를 java로 변환하는 방법은 무엇입니까?
- 22. Java로 쿠키를 얻는 방법은 무엇입니까?
- 23. 임베디드 스크립팅을 시작하는 방법은 무엇입니까?
- 24. 데이터베이스를 매핑하는 방법은 무엇입니까?
- 25. Java로 mysql에서 새로운 데이터베이스를 만들 필요가있다
- 26. 더 나은 HBASE 또는 Neo4j
- 27. 캘린더 항목을 삭제하는 방법은 무엇입니까?
- 28. 잠긴 파일을 삭제하는 방법은 무엇입니까?
- 29. PHP 세션을 삭제하는 방법은 무엇입니까?
- 30. 기본 이미지를 삭제하는 방법은 무엇입니까?
파일을 삭제하는 것 외에 다른 방법이 있습니까? – zbdiablo
http://wiki.neo4j.org/content/Testing_with_Neo4j#Use_the_ImpermanentGraphDatabase를 참조하십시오. – DNA