I wrote most of the cqlengine keyspace & table management pieces of the
Python driver to solve this exact problem.  Instead of working with a
series of statements for creating tables & managing columns, we simply
created classes in Python and sync'ed them to the DB.  It automatically
figured out what was needed and took care of it.

DB Models:
https://datastax.github.io/python-driver/api/cassandra/cqlengine/models.html
Syncing to DB:
https://datastax.github.io/python-driver/api/cassandra/cqlengine/management.html#cassandra.cqlengine.management.sync_table

If you're not using Python, I'm not sure what options you have, I'm not
much help there.

On Wed, Feb 10, 2016 at 12:05 PM Joe Bako <jb...@gracenote.com> wrote:

> Hi all,
>
> I am curious what techniques are used by others to manage schema changes
> over time in Cassandra.
>
> Modern RDBMS tools can compare schemas between DDL object definitions and
> live databases and generate change scripts accordingly.  Older techniques
> included maintaining a version and script table in the database, storing
> schema change scripts in a sequential fashion on disk, and iterating over
> them to apply them against the target database based on whether they had
> been run previously or not (indicated in the script table).
>
> The former allows you to easily see schema changes over time in your SCM
> history, the latter keeps a history of actual DDL applied against the
> database objects.  What options are available for C* and what are people
> using?
>
> Joe Bako
> Software Architect
> Gracenote, Inc.
> http://www.gracenote.com/
>
>

Reply via email to