gpt4 book ai didi

neo4j - 图数据库的变更管理?

转载 作者:行者123 更新时间:2023-12-04 05:32:03 25 4
gpt4 key购买 nike

我最近接触了图形数据库的世界。对于像我这样的老狗来说,这是一个非常有趣的范式转变。

也是最近,我一直在修改 liquibase,它是管理数据库的一个非常简洁的工具。

所以,两个世界发生了冲突,我只是想知道是否有任何工具可以对图形数据库进行类似 liquibase 的变更管理。我对neo4j特别感兴趣和 orientdb .

最佳答案

Pramod Sadalage 和 Martin Fowler 于 2003 年发表的有影响力的文章 Evolutionary Database Design对我在数据库中管理架构更改的方式产生了重大影响。我继续使用 DbDeploy Java 和 .NET 生态系统中的 DbDeploy.net,现在使用 ActiveRecord migrations .如果您觉得 liquibase 很有趣,我建议您看看这些工具。

Neo4j.rb documentation讨论了针对 Neo4j 的这些类型的迁移。

我个人没有使用过在 Neo4j 中管理迁移的工具,但我已经编写了迁移脚本,可以完成重命名属性、更改边缘标签或创建索引等操作。作为示例用例,这是我用来重新映射存储在 Neo4j 图中的一些外键并更新索引的 Gremlin Groovy 脚本的片段:

try {
projects.each { node ->
old_id = node.ref_id
new_id = old_to_new_ids[old_id]
index.remove('project', old_id, node)
node.ref_id = new_id
index.put('project', new_id, node)
}
} catch (Throwable e) {
println(e)
} finally {
g.shutdown()
}

从 Neo4j 1.8 版开始,有一个 PropertyContainer 可用于图形元数据。使用此容器更新“schema_version”属性会很简单。代码如下所示:
EmbeddedGraphDatabase db = new EmbeddedGraphDatabase(dbFilename);        
Transaction tx = db.beginTx();
PropertyContainer properties = db.getNodeManager().getGraphProperties();
properties.setProperty("schema_version", 3);
tx.success();
tx.finish();

关于neo4j - 图数据库的变更管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15312760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com