是否有删除所有约束的cypher命令?
我知道我可以去掉特定的约束。
DROP CONSTRAINT ON (book:Book) ASSERT book.isbn IS UNIQUE
但是,我想在测试后清除所有约束作为teardown的一部分。在文档中找不到任何东西,但类似于:
DROP CONSTRAINT *
更新:我的测试设置。
编写一个小型的基于promise的nodejs cypher客户端。我想测试一下在应用程序代码中定义唯一索引。
发布于 2014-09-28 02:40:24
您可以通过对http://localhost:7474/db/data/schema/constraint/
和http://localhost:7474/db/data/schema/index
的get请求获取所有索引和约束的列表。下面是我在Ruby中是如何做到这一点的,也许它会让你了解如何在Node中做同样的事情。
c.after(:all) do
conn = Faraday.new(url: "http://localhost:7474")
response = conn.get('/db/data/schema/constraint/')
constraints = JSON.parse(response.body)
constraints.each do |constraint|
Neo4j::Session.query("DROP CONSTRAINT ON (label:`#{constraint['label']}`) ASSERT label.#{constraint['property_keys'].first} IS UNIQUE")
end
response = conn.get('/db/data/schema/index/')
indexes = JSON.parse(response.body)
indexes.each do |index|
Neo4j::Session.query("DROP INDEX ON :`#{index['label']}`(#{index['property_keys'].first})")
end
end
发布于 2017-05-21 02:06:46
注使用APOC,您可以通过CALL apoc.schema.assert({}, {})
删除所有索引和约束。
发布于 2017-11-04 03:28:36
下面是我如何在Python中做到这一点:
s = connection.get_session()
# Drop constraints / indices
for constraint in s.run("CALL db.constraints"):
s.run("DROP " + constraint[0])
感觉有点讨厌,我觉得约束应该是一个更好的支持。
https://stackoverflow.com/questions/22357379
复制相似问题