What is the recommended way to manage schema evolution/migrations?

When using an SQL database, it is quite common to use a tool, framework or library that handles database migrations, i.e. schema changes over time. Often these tools keep track of the schema version by using an additional table. This ensures for instance that the schema changes (migrations) are only run once and aren’t applied multiple times (which could lead to problems).

What is the equivalent of this when using ScyllaDB, if any? Are there any tools or libraries to manage migrations and their versioning? Are there any issues with schema versioning due to the eventual consistency of ScyllaDB? I.e. how would one ensure that schema evolutions are not applied multiple times, or is this perhaps not a problem to begin with?

Thanks!

Hey SorteKanin!

It’s not a common problem when we’re talking about NoSQL and ScyllaDB. These Databases database are Query Driven, so you’re creating a leaderboard query like:
SELECT * FROM leaderboard WHERE tier_id = 123 AND map_id = 1234

your modeling will be resulted on partition/clusterization plus other things related. Usually you only do partition/clusterization key once and then after that, if you miss something related to the keys you should probably create a new table to solve this new problem.

But… I like the idea of tracking the changes inside a table for a tool but it still depends on which language are you using tbh.