Skeema
Declarative pure-SQL schema management for MySQL and MariaDB
Install / Use
/learn @skeema/SkeemaREADME
Skeema is a tool for managing MySQL and MariaDB schema changes in a declarative fashion using SQL CREATE statements. The Skeema CLI tool allows you to:
- Export
CREATEstatements from your DB and track them in an organized repo- Each table/proc/object is placed in its own file for easy browsing and reference
- Use standard
gitcommands to see history on a per-object basis - Provides vital context to AI tools, without wasteful intermediate
ALTERmigrations
- Auto-generate DDL by performing diffs between live DBs and your schema repo
- Battle-tested from a decade of use, and trusted by some of the biggest names in tech, including GitHub itself
- Skeema's internal safety mechanisms ensure that the generated DDL is absolutely always correct
- Manage multiple environments (e.g. dev, staging, prod) and keep them in sync with ease
- Configure use of online schema change tools, such as
pt-online-schema-changeorgh-ost, for performing non-disruptiveALTER TABLE- Skeema's configuration system even allows you to conditionally use OSC depending on table size, environment, schema, etc
- Apply 20+ configurable linter rules to proactively catch schema design problems and enforce company policies
- Easily lint all objects in a dir/schema, or just modified objects in a diff
- Perfect for CI use, with well-defined exit code behaviors
Skeema supports a pull-request-based workflow for schema change submission, review, and execution. This permits your team to manage schema changes in exactly the same way as you manage code changes.
Products and downloads
This repo is the free open source Community edition of the Skeema command-line tool. The Community edition supports management of tables and routines (procs/funcs). Builds are provided for Linux and MacOS.
The paid Premium edition of the Skeema CLI adds support for managing views, triggers, and events. It also includes a native Windows build, seed data management, enhanced TLS options for environments requiring client-side certs or CA verification, and many other improvements.
For download links and more information, visit skeema.io.
Documentation
Page | Description --- | --- Installation | How to install the Skeema CLI tool Getting started | Usage examples and screencasts Requirements | Supported database systems and required database privileges Features | How Skeema interacts with each type of database object, and various feature-specific topics Configuration guide | Option handling, config file format, and command-line option usage Command reference | Usage instructions for each command in the Skeema CLI Option reference | Detailed information on every Skeema option Schema change workflow | Recommended flow for pull-request-driven schema changes Pipelines and automation | Integrating Skeema into automated workflows Recipes | Using Skeema to achieve common schema management tasks FAQ | Frequently asked questions about Skeema
Credits
Created by @evanelias at Index Hint LLC, and developed with assistance from our many contributors and users.
Support for stored procedures and functions generously sponsored by Psyonix, creators of Rocket League.
Support for partitioned tables generously sponsored by Etsy.
License
Skeema Community Edition source code copyright 2026 Skeema LLC and the Skeema authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Related Skills
oracle
329.0kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
prose
329.0kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
Command Development
81.1kThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
Plugin Structure
81.1kThis skill should be used when the user asks to "create a plugin", "scaffold a plugin", "understand plugin structure", "organize plugin components", "set up plugin.json", "use ${CLAUDE_PLUGIN_ROOT}", "add commands/agents/skills/hooks", "configure auto-discovery", or needs guidance on plugin directory layout, manifest configuration, component organization, file naming conventions, or Claude Code plugin architecture best practices.

