最近問題に直面しています。 mongodbとCassandra dbスキーマの変更と更新/挿入クエリの両方に対して、パッチ管理(コードベースのgitと同様)としてバージョン管理を行います。Liquibaseはmysqlに対してのみそれを処理します。別の方法が必要ですnosql mongodbおよびcassandraのLiquibaseの。
Mongo用のツールがいくつかあります。例:
モンジーズ:
db.eval()
を使用しますモンゴビー:
MongoDBをサポートしているように見えるFlywayから分岐されたブランチがあります: https://github.com/risksense/flyway/tree/release-4.0.3-mongodb
まだテストしていませんが、有望なようです。
私は、cassandraのスキーム更新の基本的なサポートのための非常にシンプルなアプリケーションを作成しました。参照してください: ここにリンクの説明を入力
基本的な使用法は次のとおりです:Java -jar cassandra-scheme.jar --cassandra.keyspace = myspace --scheme.dir =/mydir
Mongoにそのようなツールが表示されることはないと思います。その理由は、Mongoには実際のスキーマ適用がないため、クエリを実行して変換する必要があるからです。つまり、これを行うには独自のスクリプトを記述する必要があります。これは、データ構造のバージョン番号をデータ構造に入れ、それにセカンダリインデックスを付けることを強くお勧めする1つの理由です。
Cassandraの場合、問題は異なり、そこでデータ構造を変更すると、少し苦痛になる可能性もあります。繰り返しになりますが、このようなツールは列を追加または削除できますが、マップやリストタイプなどに対処することはできません。問題が一般的なツールで十分に理解されているとは思えませんが、確かに https://github.com/comeara/pillar を確認してください。
Mongoの場合、このソリューションは、古い構造を引き出して、新しい情報と共に再度保存するスクリプトのように見えます。 Cassandraの場合、pillarはそれの一部に役立つ可能性がありますが、一部のタイプでは、さらに実行する必要がある場合があります。 Cassandraのコレクション型は、実際にはスキーマによって構造的に強制されているわけではないことに注意してください。