我们最近遇到了一个问题。我们希望对我们的mongodb和Cassandra数据库架构更改以及更新/插入查询进行版本控制(类似于代码库的git)版本控制。 Liquibase只为mysql处理它。对于nosql mongodb和cassandra,我们需要替代Liquibase。
答案 0 :(得分:6)
Mongo有一些工具,例如:
Mongeez:
db.eval()
Mongobee:
答案 1 :(得分:1)
我不认为你会看到Mongo这样的工具。原因是Mongo没有真正的架构实施,因此您需要进行查询和转换。换句话说,您需要编写自己的脚本来执行此操作。这是我强烈建议在数据结构中放置数据结构版本号并在其上放置二级索引的一个原因。
对于Cassandra来说,问题是不同的,改变数据结构也可能有点痛苦。同样,这样的工具可以添加或删除列,但它不能解决地图或列表类型等问题。我怀疑这些问题对于一般工具是否已被充分理解,但肯定会看一下https://github.com/comeara/pillar。
对于Mongo,解决方案看起来更像是一个将旧结构拉出来的脚本,并使用新信息再次保存它们。对于Cassandra来说,支柱可能对其中的一部分有帮助,但对于某些类型,您可能需要做更多。请记住,Cassandra中的集合类型并非真正由架构强制执行。
答案 2 :(得分:1)
我已经编写了一个非常简单的应用程序,用于在cassandra中对方案更新进行基本支持。 请参阅:enter link description here
基本用途是: java -jar cassandra-scheme.jar --cassandra.keyspace = myspace --scheme.dir = / mydir
答案 3 :(得分:1)
Flyway有一个分支,似乎支持mongoDB:https://github.com/risksense/flyway/tree/release-4.0.3-mongodb
Haven尚未对其进行测试,但看起来很有希望。