All Projects → skeema → Skeema

skeema / Skeema

Licence: apache-2.0
Schema management CLI for MySQL

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Skeema

Typeorm
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
Stars: ✭ 26,559 (+2991.85%)
Mutual labels:  mysql, mariadb
Sqlancer
Detecting Logic Bugs in DBMS
Stars: ✭ 672 (-21.77%)
Mutual labels:  mysql, mariadb
Mariadb4j
MariaDB Embedded in Java JAR
Stars: ✭ 579 (-32.6%)
Mutual labels:  mysql, mariadb
Phpmyfaq
phpMyFAQ - Open Source FAQ web application for PHP and MySQL, PostgreSQL and other databases
Stars: ✭ 494 (-42.49%)
Mutual labels:  mysql, mariadb
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 7,712 (+797.79%)
Mutual labels:  mysql, mariadb
Denodb
MySQL, SQLite, MariaDB, PostgreSQL and MongoDB ORM for Deno
Stars: ✭ 498 (-42.03%)
Mutual labels:  mysql, mariadb
Phpmyadmin
A web interface for MySQL and MariaDB
Stars: ✭ 5,750 (+569.38%)
Mutual labels:  mysql, mariadb
Django Mysql
🐬 🐴 Extensions to Django for use with MySQL/MariaDB
Stars: ✭ 410 (-52.27%)
Mutual labels:  mysql, mariadb
Mysqlconnector
Async MySQL Connector for .NET and .NET Core
Stars: ✭ 942 (+9.66%)
Mutual labels:  mysql, mariadb
Mycat2
MySQL Proxy using Java NIO based on Sharding SQL,Calcite ,simple and fast
Stars: ✭ 750 (-12.69%)
Mutual labels:  mysql, mariadb
Evolve
Database migration tool for .NET and .NET Core projects. Inspired by Flyway.
Stars: ✭ 477 (-44.47%)
Mutual labels:  mysql, mariadb
Mariadb Container
MariaDB container images based on Red Hat Software Collections and intended for OpenShift and general usage. Users can choose between Red Hat Enterprise Linux, Fedora, and CentOS based images.
Stars: ✭ 19 (-97.79%)
Mutual labels:  mysql, mariadb
Replication Manager
Signal 18 repman - Replication Manager for MySQL / MariaDB / Percona Server
Stars: ✭ 461 (-46.33%)
Mutual labels:  mysql, mariadb
Tadpolefordbtools
Stars: ✭ 523 (-39.12%)
Mutual labels:  mysql, mariadb
Sqlprovider
A general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
Stars: ✭ 423 (-50.76%)
Mutual labels:  mysql, mariadb
Dbshield
Database firewall written in Go
Stars: ✭ 620 (-27.82%)
Mutual labels:  mysql, mariadb
Sqlx
🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, SQLite, and MSSQL.
Stars: ✭ 5,039 (+486.61%)
Mutual labels:  mysql, mariadb
Gnomock
Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻
Stars: ✭ 398 (-53.67%)
Mutual labels:  mysql, mariadb
Sequelize
An easy-to-use and promise-based multi SQL dialects ORM tool for Node.js
Stars: ✭ 25,422 (+2859.49%)
Mutual labels:  mysql, mariadb
Ansible Role Mysql
Ansible Role - MySQL
Stars: ✭ 826 (-3.84%)
Mutual labels:  mysql, mariadb

Skeema

build status code coverage downloads latest release

Skeema is a tool for managing MySQL tables and schema changes in a declarative fashion using pure SQL. It provides a CLI tool allowing you to:

  • Export CREATE TABLE statements to the filesystem, for tracking in a repo (git, hg, svn, etc)
  • Diff changes in the schema repo against live DBs to automatically generate DDL
  • 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-change, for performing ALTERs
  • Convert non-online migrations from frameworks like Rails or Django into online schema changes in production

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. Our new companion Cloud Linter for GitHub repos provides automatic linting of schema change commits and pull requests.

Download and install

Download links and installation instructions are available on Skeema's website.

Documentation

Status

The Skeema CLI tool is generally available, having reached the v1 release milestone in July 2018. Prior to that, it was in public beta since October 2016.

The skeema binary is supported on macOS and Linux. No native Windows version is available yet, but the Linux binary works properly under WSL.

Tagged releases are tested against the following databases, all running on Linux:

  • MySQL 5.5, 5.6, 5.7, 8.0
  • Percona Server 5.5, 5.6, 5.7, 8.0
  • MariaDB 10.1, 10.2, 10.3, 10.4, 10.5

Outside of a tagged release, every commit is automatically tested via GitHub Actions CI against MySQL 5.7 and 8.0.

A few uncommon database features -- such as spatial indexes and subpartitioning -- are not supported yet. Skeema is able to create or drop tables using these features, but not alter them. The output of skeema diff and skeema push clearly displays when this is the case. You may still make such alters directly/manually (outside of Skeema), and then update the corresponding CREATE TABLE files via skeema pull. Please see the requirements doc for more information.

Credits

Created and maintained by @evanelias.

Additional contributions by:

Support for stored procedures and functions generously sponsored by Psyonix.

Support for partitioned tables generously sponsored by Etsy.

License

Copyright 2021 Skeema LLC

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].