January 19, 2019
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 can be complex 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.io application to your schema repo, providing automatic linting of new pull requests, and optionally automatic pushing of merged changes.
This system is designed to help DBAs and developers alike. The CI system is essentially a pull request auto-linter. It catches common table problems (invalid SQL, missing primary key, wrong storage engine, wrong character set, etc) and gives developers immediate feedback, so that DBAs can focus on more important aspects of schema review, such as performance implications. Meanwhile, the optional CD system provides auto-push behavior – a way for schema changes to be applied without needing a manual run of a lengthy pt-online-schema-change command line. Combined with existing GitHub security features such as code owners and protected branches, you could configure a totally self-service workflow for some schemas/tables, while still requiring DBA review/push for others.
2020 Update: Our CI product, Skeema Cloud Linter, has completed its beta period and has publicly launched!