Today, we’re excited to announce the release of SchemaHero 0.12. This is our first release as a CNCF Sandbox project, and we are thrilled with the community involvement and progress of the project. This release comes with initial support for managing Cassandra schemas, a preview of SQLite3 support, improved handling of connection templates when using HashiCorp Vault, support for Postgresql triggers, and a lot more.
SchemaHero is a combination CLI utility and Kubernetes Operator for declarative schema management for various databases, namely PostgreSQL, MySQL, CockroachDB, Cassandra, and SQLite that eliminates the task of creating and managing sequenced migration scripts universally compatible with an application environment. SchemaHero converts a schema definition into migration scripts that can be applied in any environment.
We set out to add Cassandra support into SchemaHero, but Cassandra isn’t quite the same as Postgresql and MySQL. Building support for Cassandra meant adding support for custom data types, managing keyspaces, and a whole set of unique things that our existing functionality didn’t map nicely to. It took a fair amount of refactoring (which helped our Postgres and Mysql efforts) and we ended up with some new manifest definitions in the v1alpha4 Custom Resource Definitions, such as table properties, data types, and support for specifying multiple endpoints in a Cassandra cluster. We are eager to get some feedback to see if this works for more use cases than ours, so give it a try and let us know!
Thanks to the work of community contributor, @pauldthomson, SchemaHero has support for Hashicorp Vault, but now also support for specifying the connection string template in the Agent Injector configuration. If you’ve customized the connection string in Vault, you can copy that template into an annotation in the SchemaHero database object, and the SchemaHero operator will render the template with the vault-supplied credentials to produce a compatible connection string. Many thanks to Paul for the work on this!
This final update is something that we’ve wanted to include for a while, but haven’t had the chance to until now. You can now upgrade your existing SchemaHero installation to the latest version 0.12 by just running the
kubectl schemahero install command again. The new version will upgrade the SchemaHero manager and your Custom Resource Definitions, then will restart the pods, upgrading your instance to the latest version.