Import error: C:\Users\[username]\AppData\Local\Neo4j\Relate\Data\dbmss\dbms-dd16c384-78c5-4c21-94f3-b0e63e6c4e06\data\databases\neo4j already contains data, cannot do import here
Caused by:C:\Users\[username]\AppData\Local\Neo4j\Relate\Data\dbmss\dbms-dd16c384-78c5-4c21-94f3-b0e63e6c4e06\data\databases\neo4j already contains data, cannot do import here
java.lang.IllegalStateException: C:\Users\[username]\AppData\Local\Neo4j\Relate\Data\dbmss\dbms-dd16c384-78c5-4c21-94f3-b0e63e6c4e06\data\databases\neo4j already contains data, cannot do import here
8条答案
按热度按时间hm2xizp91#
关闭Neo4j服务器,执行
rm -rf data/graph.db
,然后再次启动服务器。此过程将彻底清除您的数据,因此请小心处理。sigwle7e2#
请运行两个命令。
以上命令将删除所有具有关系节点然后运行,
并且它将删除没有关系的节点。
yqkkidmi3#
处理多个数据库。
根据Neo4j管理多个数据库文档:
最后一个管理差异是如何完全清除一个数据库而不影响具有多个数据库的整个示例。在处理单个示例和单个数据库方法时,用户可以删除整个示例并重新开始。但是,对于多个数据库,除非我们愿意在该示例中丢失其他数据库中的所有内容,否则我们无法这样做。这种方法类似于其他DBMS,我们可以删除并重新创建数据库,但保留其他所有内容。Cypher的命令是
CREATE OR REPLACE DATABASE <name>
。这将创建数据库(如果它不存在)或用一个干净的数据库替换现有的数据库。启动neo4j时,可以访问两个数据库,一个
system
数据库和一个默认(neo4j
)数据库。要清除/重置neo4j
数据库:1 -切换到
system
数据库:2 -显示使用示例创建的所有数据库:
3 -运行命令以清除数据库。
ubby3x7f4#
根据我的经验,有两种方法可以重置Neo4j数据库,具体取决于您的需要。
方法1:只需删除所有节点/关系/索引/约束
在Neo4j浏览器中,或在Py 2neo中使用
graph.run()
(链接)。然而,尽管这种方法很方便,但它不适合使用命令
neo4j-admin.bat import
进行批量导入,即不适合一次 * 快速 * 导入数百万个节点。方法二:重置批量导入工具的数据库
当数据库为非空时,无法执行BULK import。我尝试了上述方法,但仍然收到错误:
为了解决这个问题,我删除了以下文件夹:
和
然后执行Import命令:
启动Neo4j数据库。在Neo4j Desktop中,现在应该可以识别标签和关系了。
请注意,我删除的数据库(neo4j)和导入到的数据库是相同的。
mrwjdhj35#
此命令删除所有内容,但要求安装apoc:
调用apoc.周期.迭代('MATCH(n)RETURN n','DETACH DELETE n',{批处理大小:1000})
mwecs4sa6#
这对我在社区版4.3.2版中起作用:
cd <neo home>
rm -Rf data/databases/* data/transactions/*
个现在你又看到了系统和neo4j数据库。上面的命令也删除了系统数据库,这看起来是必要的,因为只删除常规数据库(在社区版中只能是'neo4j')会使系统数据库中的元数据不一致,你会看到错误。
data/dbms
似乎包含用户凭据,如果您希望保留现有用户,则可以保留它(否则,您将返回到默认的neo4j/test用户)。推荐的方法是使用
DROP
或CREATE
Cypher命令,然而,这些命令仅在企业版中可用(我认为这是一个遗憾,像这样的基本功能是他们的高级产品的一部分,但仅此而已)。lg40wkob7#
如果您在Docker容器上使用它,则可以执行以下操作
docker-compose rm -f -s -v myNeo4jService
rjee0c158#
由于neo4j只运行conf文件中指定的当前数据库,因此启动一个新的干净数据库的简单方法是在neo4j.conf文件中更改当前数据库,然后重新启动neo4j服务器。
有些人可能会说数据库名称被更改了,但在撰写本文[2018-12]时,neo4j并不支持多个数据库示例,我们没有必要区分数据库,因此代码中没有使用数据库的名称。