Go
Switch branches/tags
Nothing to show
Latest commit 1626b82 Jan 31, 2018
tomkrouper and evanelias Add regex options ignore-table and ignore-schema (#15)
This change will allow users to ignore certain tables or schemas while
using Skeema. The main idea behind this is to ignore tables that were
created by pt-online-schema-change or gh-ost. In addition it makes
sense to allow entire schemas to be ignored besides the system schemas.

* Initial changes for ignoring tables/schemas

* Added error checking.

* Added error checking, fixed logic.

* Adding table ignore for pull

* cmd_push changes to ignore table

* Remove unneeded options.

* Treat auto_inc correct on unsupported tables

* Add debug logUnsupportedTableDiff output to pull

* Added commands back to cmd_init so they'd show up in help.

* Add ignore options to the docs.

* Moving skipping statements to debug level

* Initial changes for ignoring tables/schemas

* Added error checking.

* Added error checking, fixed logic.

* Adding table ignore for pull

* cmd_push changes to ignore table

* Remove unneeded options.

* Treat auto_inc correct on unsupported tables

* Add debug logUnsupportedTableDiff output to pull

* Added commands back to cmd_init so they'd show up in help.

* Add ignore options to the docs.

* Moving skipping statements to debug level

* Initial changes for ignoring tables/schemas

Added error checking.

Added error checking, fixed logic.

Adding table ignore for pull

cmd_push changes to ignore table

Remove unneeded options.

Treat auto_inc correct on unsupported tables

Add debug logUnsupportedTableDiff output to pull

Added commands back to cmd_init so they'd show up in help.

Add ignore options to the docs.

Moving skipping statements to debug level

Initial changes for ignoring tables/schemas

Added error checking, fixed logic.

Adding table ignore for pull

cmd_push changes to ignore table

Remove unneeded options.

Treat auto_inc correct on unsupported tables

Added commands back to cmd_init so they'd show up in help.

Add ignore options to the docs.

Moving skipping statements to debug level

Add options to push/pull/diff to show they can be used with those commands.

* Fix conflict fix error

* remove unnecessary comment

* Remove -regex from option names

* Change skipping table/schema to warn instead of debug

* typo fix

* skeema lint skips ignored tables

* Update variables to remove Regex

* Ignore schema for lint
Permalink
Failed to load latest commit information.
Godeps Update dependency github.com/skeema/tengo Jan 12, 2018
doc Add regex options ignore-table and ignore-schema (#15) Jan 31, 2018
vendor Update dependency github.com/skeema/tengo Jan 12, 2018
.gitignore Fix bad .gitignore line which was accidentally preventing vendoring o… Nov 11, 2016
LICENSE Add skeleton README, along with NOTICE and LICENSE (Apache v2) Oct 18, 2016
NOTICE Add skeleton README, along with NOTICE and LICENSE (Apache v2) Oct 18, 2016
README.md README: Update copyright year Jan 12, 2018
cmd_add_env.go Update deps: renamed skeema/mycli to skeema/mybase Mar 20, 2017
cmd_diff.go Add regex options ignore-table and ignore-schema (#15) Jan 31, 2018
cmd_init.go Add regex options ignore-table and ignore-schema (#15) Jan 31, 2018
cmd_lint.go Add regex options ignore-table and ignore-schema (#15) Jan 31, 2018
cmd_pull.go Add regex options ignore-table and ignore-schema (#15) Jan 31, 2018
cmd_push.go Add regex options ignore-table and ignore-schema (#15) Jan 31, 2018
configutils.go Add regex options ignore-table and ignore-schema (#15) Jan 31, 2018
configutils_test.go Shellouts: add {ENVIRONMENT} var, passing thru positional command-lin… Jan 3, 2017
ddlstatement.go diff/push: Refactor options involving unsafe operations Jan 17, 2017
dir.go Update deps: renamed skeema/mycli to skeema/mybase Mar 20, 2017
dir_test.go Update deps: renamed skeema/mycli to skeema/mybase Mar 20, 2017
exit.go diff and push: Clean up output and logging Nov 13, 2016
log.go Logging: update to latest version of logrus dep May 10, 2017
shellout.go Simplify optional service discovery configuration Jan 21, 2017
shellout_test.go Simplify optional service discovery configuration Jan 21, 2017
skeema.go Update deps: renamed skeema/mycli to skeema/mybase Mar 20, 2017
sqlfile.go SQLFile: In CREATE TABLE regex, allow . to match newlines Dec 21, 2016
target.go diff/push: improve debug logging for unsupported table-diff edge case Jan 13, 2017

README.md

Skeema

Skeema is a tool for managing MySQL tables and schema changes. 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 (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 Rails, Django, etc 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.

Downloading

Pre-built skeema binaries for Linux and macOS will be supplied later in Q2, once a formal release occurs. Stay tuned!

Compiling

Requires the Go programming language toolchain. Go version 1.6 or later is needed in order to properly use vendored dependencies.

To download, build, and install Skeema, run:

go get github.com/skeema/skeema

Documentation

Status

Skeema is currently in public beta.

The skeema binary is supported on macOS and Linux. For now, it cannot be compiled on Windows. On the database side, testing has primarily been performed against MySQL 5.6, running on Linux.

Several InnoDB features (compression, partitioning, etc) and rare/new MySQL column types are not yet supported. 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.

Authors

@evanelias

License

Copyright 2018 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.