@datacharmer datacharmer released this Nov 11, 2018 · 1 commit to master since this release

Assets 6

Add support for MySQL 4.1 and improve code readability

  • Modify tests to use information_schema only for MySQL 5.x+
  • Add version info to sandbox scripts to give them more awareness

In general, remove as many hard-coded text as possible:

  • Add function IsEnvSet to check when env variables are set;
  • Add variables for features minimum versions;
  • Add constants for sandbox script names;
  • Add constants for most used error messages;
  • Add comparison functions for testing in a separate package;
  • Replace manual path composition with path.Join

@datacharmer datacharmer released this Oct 27, 2018 · 5 commits to master since this release

Assets 6


  • Added ability of unpacking "tar.xz" files (tarballs for Linux are compressed with xz instead of gzip as of MySQL 8.0.12)


  • Fixed minor issue in unpack-shell. The unpacker was trying to move the shell extracted directory to the server directory.


  • Code cleanup: fixed many code style violations
  • Added unit test for abbreviations module.

@datacharmer datacharmer released this Oct 7, 2018 · 8 commits to master since this release

Assets 6

Minor bug fixes and more tests

  • Merged in PR #39 (add port to prompt)
  • Added tests for common/checks and common/tprintf
  • Refactored some code to improve testability
  • Replaced stack implementation
  • Added tests for stack and concurrency

@datacharmer datacharmer released this Sep 23, 2018 · 11 commits to master since this release

Assets 6

Adds cookbook scripts and fixes bug #38

  • Fixes Issue #38 "--force does not check for locked sb"
  • Adds cookbook scripts
  • Adds missing copyright on some files.
  • Adds check for missing copyright to sanity_check.sh

@datacharmer datacharmer released this Sep 22, 2018 · 13 commits to master since this release

Assets 6

Added sandbox operations logging (on demand)

  • Added option --log-sb-operations to enable logging
  • Added option --log-directory to change the default directory ($SANDBOX_HOME)
  • Added log-sb-operations and log-directory fields to default values.

@datacharmer datacharmer released this Sep 9, 2018 · 14 commits to master since this release

Assets 6

New features:

  • Added option --repl-crash-safe (Issue #36) to get crash safe params without GTID.

Bugs fixed

  • Fixed Issue #35 (--gtid should include relay-log-recovery)
  • Fixed Issue #37 (slave initialization with GTID should use MASTER_AUTO_POSITION)

Testing and more

  • Added test for GTID behavior.
  • Added option to build compressed executables (but defaults is still uncompressed)
  • Added ./scripts/sanity_check.sh to verify formatting and code complaint.
  • Some code refactoring: simplified exit procedure
  • Moved build script to ./scripts

@datacharmer datacharmer released this Sep 1, 2018 · 17 commits to master since this release

Assets 6

Fix Issue #34 "dbdeployer fails with .mylogin.cnf"

dbdeployer fails when a valid .mylogin.cnf is found in the $HOME directory. The failure is due to the way .mylogin.cnf is designed: it bypasses --no-defaults and --defaults-file (really funny, MySQL team!)

The only known way of using --no-defaults or --defaults-file with .mylogin.cnf is to define an impossible path for it using MYSQL_TEST_LOGIN_FILE environment variable.

dbdeployer does that, and also all the sandbox files use the same workaround.

@datacharmer datacharmer released this Aug 12, 2018 · 27 commits to master since this release

Assets 6


Added option unpack --shell tarball_name

Now dbdeployer can unpack a shell tarball and merge it with the corresponding server.
Also the option --target-server lets us choose where to merge.
See "Installing MySQL shell" in README.md

@datacharmer datacharmer released this Aug 11, 2018 · 28 commits to master since this release

Assets 6

Bug fixes and code refactoring

  • Fixes Issue#30 "--rpl-user and --db-user should not allow root"

  • Remove string literals from options handling
    All flags used on the command line are now defined in the "defaults" package and referred to as variables, rather than using their literal values directly.
    This eliminates some of the risks of handling the wrong option or leaving one option unread.