Skeema v1.2.0 has been released, including two major new features: support for stored procedures and functions, and improved linter functionality. Stored procedures and functions Up until this point, Skeema’s primary focus has been tables, as these are the primary object in a relational database. However, Skeema’s declarative model can be applied to other types of database objects as well. This release adds support for managing routines (stored procedures and functions) with Skeema, providing the first step towards eventually managing all available database object types with a single tool.
Skeema’s command-line client is currently a stateless tool, typically run manually as needed. Some companies are starting to use it in an automated fashion, as part of a CI/CD pipeline, but this is currently difficult to configure. Fortunately, automated CI/CD using Skeema is about to become a lot easier! Integration with GitHub’s API is currently under development, offering a fully pull-request driven model of schema management. You’ll be able to add the skeema.
Skeema uses a declarative approach to schema management: the repository reflects a desired end-state of table definitions, and the tool figures out how to convert any database into this state. This contrasts with most preexisting schema management systems, which instead are based on a concept of migrations: an incremental series of files, each defining a schema change operation and its corresponding rollback. In this post, we’ll discuss the differences in these approaches.