是否有cassandra的架构版本控制工具

时间:2014-08-13 12:33:08

标签: cassandra

在sql世界中,拥有一个通过模式脚本文件夹来设置某个模式的工具是很常见的。一种广泛使用的方法是拥有一个包含当前db版本号和ddl脚本的表,以便我们可以从任何版本的db启动并以控制器方式更新到任何后续版本。 Visual Studio有db项目,redgate有类似的工具。

我想知道是否还有cassandra的东西。我知道为cassandra实现一些基本的东西并不会太难,但是想知道是否有人已经完成了它。

5 个答案:

答案 0 :(得分:7)

Pillar管理您的Cassandra数据存储的迁移。

Pillar从希望自动管理Cassandra架构成为代码。将模式作为代码进行管理可实现自动构建和部署,这是组织努力实现持续交付的基础实践。

Pillar对Cassandra来说,Rails ActiveRecord迁移或Play Evolutions对关系数据库有一个关键区别:Pillar完全独立于任何应用程序开发框架。

https://github.com/comeara/pillar

答案 1 :(得分:5)

您的初始问题未指定语言,但您稍后表示您喜欢C#。我没有C#答案,但我已经提取了我正在为我的项目使用的Java版本控制组件。我还创建了一个小示例项目,展示了如何集成它。这是愚蠢的。这个问题有不同的方法,所以我选择了一个很容易构建并完成我需要的方法。以下是两个GitHub项目:

https://github.com/DonBranson/cql_schema_versioning

https://github.com/DonBranson/cql_schema_versioning_example

此组件不在架构中存储版本#,但存储它运行的脚本列表。它取决于脚本名称的排序顺序来确定运行顺序。非常基本。

答案 2 :(得分:1)

Cassandra本质上是无图形的'它是一个结构化的键值存储,因此在这方面与传统的rdbms非常不同。

Cassandra现在已经发展成为可选的架构'因为它允许您描述生活在特定列族中的一般数据类型。

尝试查看Liquibase和/或Flyaway,看看扩展程序是否提供了您需要的版本控制功能。

http://bungeedata.blogspot.com/2013/12/liquibase-and-cassandra.html

http://www.datastax.com/dev/blog/schema-in-cassandra-1-1

http://planetcassandra.org/blog/schema-vs-schema-less/

答案 3 :(得分:1)

我一直在寻找可用于以下场景的架构迁移工具:

部署应用程序时自动升级到架构。 允许填充测试Cassandra数据库以进行集成测试。 经过一番搜索,我发现以下两个看起来像潜在的候选人:

https://github.com/Contrast-Security-OSS/cassandra-migration https://github.com/DonBranson/cql_schema_versioning

答案 4 :(得分:0)

我不知道今天存在的任何事情。

如果你正在使用 CQL ,你可能会想出一些东西,但是你可能会遇到有限的 CQL 能力来修改表格的问题然后进入转型阶段。

当我在SQL中使用这些类型的工具时,我总是在应用更新的DDL之后最终得到一堆SQL来更新数据集。

使用 CQL ,我必须编写在架构更改后应用的代码。

如果您正在做的只是添加或删除表,列和索引,那么它应该是可行的。