Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,18 @@ The following guidelines want to help and simplify the process of contributing t
## Development Setup

- **Go 1.22+** is required to build and test dbdeployer.
- **[golangci-lint](https://golangci-lint.run/)** is required for linting. Install it following the [official instructions](https://golangci-lint.run/welcome/install/) and run `golangci-lint run` before submitting a PR.
- **[golangci-lint](https://golangci-lint.run/)** is required for linting:
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CONTRIBUTING says golangci-lint is "required", but there’s no golangci-lint config in the repo and CI doesn’t appear to run it. To avoid contributor confusion, either add/configure golangci-lint (and enforce it in CI) or soften the wording to make it optional/recommended.

Suggested change
- **[golangci-lint](https://golangci-lint.run/)** is required for linting:
- **[golangci-lint](https://golangci-lint.run/)** is recommended for linting (optional):

Copilot uses AI. Check for mistakes.
```bash
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
```
- **Run tests:**
```bash
./test/go-unit-tests.sh
```
- **Build:**
```bash
go build -o dbdeployer .
```

## Principles

Expand Down Expand Up @@ -103,7 +114,7 @@ Depending on how many binaries you have and the speed of your machine, this test
### 4. Running the test in a Docker container

This is the same test that runs automatically on GitHub when a pull request is submitted. It uses a specific Docker
image (`datacharmer/mysql-sb-full`), which contains MySQL binaries from version 4.1.22 to 8.0.x. To run it on your
image (`datacharmer/mysql-sb-full`) (Note: this Docker image is from the original maintainer's repository and may need to be updated), which contains MySQL binaries from version 4.1.22 to 8.0.x. To run it on your
machine you will need a working Docker server and the ability of downloading the image from the Internet.

While the previous one may occasionally fail (if you don't have all the versions available), this one **must succeed**,
Expand Down
144 changes: 72 additions & 72 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,85 +1,85 @@
# dbdeployer

[DBdeployer](https://github.com/ProxySQL/dbdeployer) is a tool that deploys MySQL database servers easily.
This is a port of [MySQL-Sandbox](https://github.com/datacharmer/mysql-sandbox), originally written in Perl, and re-designed from the ground up in [Go](https://golang.org). See the [features comparison](https://github.com/datacharmer/dbdeployer/blob/master/docs/features.md) for more detail.
This is a port of [MySQL-Sandbox](https://github.com/datacharmer/mysql-sandbox), originally written in Perl, and re-designed from the ground up in [Go](https://golang.org). See the [features comparison](https://github.com/ProxySQL/dbdeployer/blob/master/docs/features.md) for more detail.

## New Maintainer

This project was originally created and maintained by [Giuseppe Maxia](https://github.com/datacharmer) (datacharmer). It is now actively maintained by the [ProxySQL](https://github.com/ProxySQL) team, continuing Giuseppe's excellent work while expanding the project's capabilities.
As of 2026, dbdeployer is actively maintained by the [ProxySQL](https://github.com/ProxySQL) team, with the blessing of the original creator [Giuseppe Maxia](https://github.com/datacharmer). We are grateful for Giuseppe's years of work on this project.

**Roadmap highlights:**

- ProxySQL and Orchestrator integration
- Provider-based architecture for extensible database support
- Eventual PostgreSQL support
**Roadmap:**
- Modern MySQL support (8.4 LTS, 9.x Innovation releases)
- ProxySQL and Orchestrator integration as deployment providers
- Provider-based architecture for extensibility
- PostgreSQL support (long-term)

See the [Phase 1 milestone](https://github.com/ProxySQL/dbdeployer/milestone/1) for current progress.

Documentation updated for version 1.66.0 (26-Jul-2022 10:30 UTC)
Documentation updated for version 1.74.0 (23-Mar-2026)

![Build Status](https://github.com/ProxySQL/dbdeployer/workflows/.github/workflows/all_tests.yml/badge.svg)
Copy link

Copilot AI Mar 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build status badge URL format looks incorrect for GitHub Actions (it uses /workflows/.github/workflows/all_tests.yml/badge.svg). Consider switching to the supported badge endpoint under /actions/workflows/<workflow_file>/badge.svg (optionally with a branch query) so the badge renders reliably.

Suggested change
![Build Status](https://github.com/ProxySQL/dbdeployer/workflows/.github/workflows/all_tests.yml/badge.svg)
![Build Status](https://github.com/ProxySQL/dbdeployer/actions/workflows/all_tests.yml/badge.svg)

Copilot uses AI. Check for mistakes.

- [Installation](https://github.com/datacharmer/dbdeployer/wiki/installation)
- [Manual installation](https://github.com/datacharmer/dbdeployer/wiki/installation#manual-installation)
- [Installation via script](https://github.com/datacharmer/dbdeployer/wiki/installation#installation-via-script)
- [Prerequisites](https://github.com/datacharmer/dbdeployer/wiki/prerequisites)
- [Initializing the environment](https://github.com/datacharmer/dbdeployer/wiki/initializing-the-environment)
- [Updating dbdeployer](https://github.com/datacharmer/dbdeployer/wiki/updating-dbdeployer)
- [Main operations](https://github.com/datacharmer/dbdeployer/wiki/main-operations)
- [Overview](https://github.com/datacharmer/dbdeployer/wiki/main-operations#overview)
- [Unpack](https://github.com/datacharmer/dbdeployer/wiki/main-operations#unpack)
- [Deploy single](https://github.com/datacharmer/dbdeployer/wiki/main-operations#deploy-single)
- [Deploy multiple](https://github.com/datacharmer/dbdeployer/wiki/main-operations#deploy-multiple)
- [Deploy replication](https://github.com/datacharmer/dbdeployer/wiki/main-operations#deploy-replication)
- [Re-deploy a sandbox](https://github.com/datacharmer/dbdeployer/wiki/main-operations#re-deploy-a-sandbox)
- [Database users](https://github.com/datacharmer/dbdeployer/wiki/database-users)
- [Database server flavors](https://github.com/datacharmer/dbdeployer/wiki/database-server-flavors)
- [Getting remote tarballs](https://github.com/datacharmer/dbdeployer/wiki/getting-remote-tarballs)
- [Looking at the available tarballs](https://github.com/datacharmer/dbdeployer/wiki/getting-remote-tarballs#looking-at-the-available-tarballs)
- [Getting a tarball](https://github.com/datacharmer/dbdeployer/wiki/getting-remote-tarballs#getting-a-tarball)
- [Customizing the tarball list](https://github.com/datacharmer/dbdeployer/wiki/getting-remote-tarballs#customizing-the-tarball-list)
- [Changing the tarball list permanently](https://github.com/datacharmer/dbdeployer/wiki/getting-remote-tarballs#changing-the-tarball-list-permanently)
- [From remote tarball to ready to use in one step](https://github.com/datacharmer/dbdeployer/wiki/getting-remote-tarballs#from-remote-tarball-to-ready-to-use-in-one-step)
- [Guessing the latest MySQL version](https://github.com/datacharmer/dbdeployer/wiki/getting-remote-tarballs#guessing-the-latest-mysql-version)
- [Practical examples](https://github.com/datacharmer/dbdeployer/wiki/practical-examples)
- [Standard and non-standard basedir names](https://github.com/datacharmer/dbdeployer/wiki/standard-and-non-standard-basedir-names)
- [Using short version numbers](https://github.com/datacharmer/dbdeployer/wiki/using-short-version-numbers)
- [Multiple sandboxes, same version and type](https://github.com/datacharmer/dbdeployer/wiki/multiple-sandboxes,-same-version-and-type)
- [Using the direct path to the expanded tarball](https://github.com/datacharmer/dbdeployer/wiki/using-the-direct-path-to-the-expanded-tarball)
- [Ports management](https://github.com/datacharmer/dbdeployer/wiki/ports-management)
- [Concurrent deployment and deletion](https://github.com/datacharmer/dbdeployer/wiki/concurrent-deployment-and-deletion)
- [Replication topologies](https://github.com/datacharmer/dbdeployer/wiki/replication-topologies)
- [Skip server start](https://github.com/datacharmer/dbdeployer/wiki/skip-server-start)
- [MySQL Document store, mysqlsh, and defaults.](https://github.com/datacharmer/dbdeployer/wiki/mysql-document-store,-mysqlsh,-and-defaults.)
- [Installing MySQL shell](https://github.com/datacharmer/dbdeployer/wiki/installing-mysql-shell)
- [Database logs management.](https://github.com/datacharmer/dbdeployer/wiki/database-logs-management.)
- [dbdeployer operations logging](https://github.com/datacharmer/dbdeployer/wiki/dbdeployer-operations-logging)
- [Sandbox customization](https://github.com/datacharmer/dbdeployer/wiki/sandbox-customization)
- [Sandbox management](https://github.com/datacharmer/dbdeployer/wiki/sandbox-management)
- [Sandbox macro operations](https://github.com/datacharmer/dbdeployer/wiki/sandbox-macro-operations)
- [dbdeployer global exec](https://github.com/datacharmer/dbdeployer/wiki/sandbox-macro-operations#dbdeployer-global-exec)
- [dbdeployer global use](https://github.com/datacharmer/dbdeployer/wiki/sandbox-macro-operations#dbdeployer-global-use)
- [Sandbox deletion](https://github.com/datacharmer/dbdeployer/wiki/sandbox-deletion)
- [Default sandbox](https://github.com/datacharmer/dbdeployer/wiki/default-sandbox)
- [Using the latest sandbox](https://github.com/datacharmer/dbdeployer/wiki/using-the-latest-sandbox)
- [Sandbox upgrade](https://github.com/datacharmer/dbdeployer/wiki/sandbox-upgrade)
- [Dedicated admin address](https://github.com/datacharmer/dbdeployer/wiki/dedicated-admin-address)
- [Loading sample data into sandboxes](https://github.com/datacharmer/dbdeployer/wiki/loading-sample-data-into-sandboxes)
- [Running sysbench](https://github.com/datacharmer/dbdeployer/wiki/running-sysbench)
- [Obtaining sandbox metadata](https://github.com/datacharmer/dbdeployer/wiki/obtaining-sandbox-metadata)
- [Replication between sandboxes](https://github.com/datacharmer/dbdeployer/wiki/replication-between-sandboxes)
- [a. NDB to NDB](https://github.com/datacharmer/dbdeployer/wiki/replication-between-sandboxes#a.-ndb-to-ndb)
- [b. Group replication to group replication](https://github.com/datacharmer/dbdeployer/wiki/replication-between-sandboxes#b.-group-replication-to-group-replication)
- [c. Master/slave to master/slave.](https://github.com/datacharmer/dbdeployer/wiki/replication-between-sandboxes#c.-master/slave-to-master/slave.)
- [d. Hybrid replication](https://github.com/datacharmer/dbdeployer/wiki/replication-between-sandboxes#d.-hybrid-replication)
- [e. Cloning](https://github.com/datacharmer/dbdeployer/wiki/replication-between-sandboxes#e.-cloning)
- [Using dbdeployer in scripts](https://github.com/datacharmer/dbdeployer/wiki/using-dbdeployer-in-scripts)
- [Importing databases into sandboxes](https://github.com/datacharmer/dbdeployer/wiki/importing-databases-into-sandboxes)
- [Cloning databases](https://github.com/datacharmer/dbdeployer/wiki/cloning-databases)
- [Compiling dbdeployer](https://github.com/datacharmer/dbdeployer/wiki/compiling-dbdeployer)
- [Generating additional documentation](https://github.com/datacharmer/dbdeployer/wiki/generating-additional-documentation)
- [Command line completion](https://github.com/datacharmer/dbdeployer/wiki/command-line-completion)
- [Using dbdeployer source for other projects](https://github.com/datacharmer/dbdeployer/wiki/using-dbdeployer-source-for-other-projects)
- [Exporting dbdeployer structure](https://github.com/datacharmer/dbdeployer/wiki/exporting-dbdeployer-structure)
- [Semantic versioning](https://github.com/datacharmer/dbdeployer/wiki/semantic-versioning)
- [Do not edit](https://github.com/datacharmer/dbdeployer/wiki/do-not-edit)
- [Installation](https://github.com/ProxySQL/dbdeployer/wiki/installation)
- [Manual installation](https://github.com/ProxySQL/dbdeployer/wiki/installation#manual-installation)
- [Installation via script](https://github.com/ProxySQL/dbdeployer/wiki/installation#installation-via-script)
- [Prerequisites](https://github.com/ProxySQL/dbdeployer/wiki/prerequisites)
- [Initializing the environment](https://github.com/ProxySQL/dbdeployer/wiki/initializing-the-environment)
- [Updating dbdeployer](https://github.com/ProxySQL/dbdeployer/wiki/updating-dbdeployer)
- [Main operations](https://github.com/ProxySQL/dbdeployer/wiki/main-operations)
- [Overview](https://github.com/ProxySQL/dbdeployer/wiki/main-operations#overview)
- [Unpack](https://github.com/ProxySQL/dbdeployer/wiki/main-operations#unpack)
- [Deploy single](https://github.com/ProxySQL/dbdeployer/wiki/main-operations#deploy-single)
- [Deploy multiple](https://github.com/ProxySQL/dbdeployer/wiki/main-operations#deploy-multiple)
- [Deploy replication](https://github.com/ProxySQL/dbdeployer/wiki/main-operations#deploy-replication)
- [Re-deploy a sandbox](https://github.com/ProxySQL/dbdeployer/wiki/main-operations#re-deploy-a-sandbox)
- [Database users](https://github.com/ProxySQL/dbdeployer/wiki/database-users)
- [Database server flavors](https://github.com/ProxySQL/dbdeployer/wiki/database-server-flavors)
- [Getting remote tarballs](https://github.com/ProxySQL/dbdeployer/wiki/getting-remote-tarballs)
- [Looking at the available tarballs](https://github.com/ProxySQL/dbdeployer/wiki/getting-remote-tarballs#looking-at-the-available-tarballs)
- [Getting a tarball](https://github.com/ProxySQL/dbdeployer/wiki/getting-remote-tarballs#getting-a-tarball)
- [Customizing the tarball list](https://github.com/ProxySQL/dbdeployer/wiki/getting-remote-tarballs#customizing-the-tarball-list)
- [Changing the tarball list permanently](https://github.com/ProxySQL/dbdeployer/wiki/getting-remote-tarballs#changing-the-tarball-list-permanently)
- [From remote tarball to ready to use in one step](https://github.com/ProxySQL/dbdeployer/wiki/getting-remote-tarballs#from-remote-tarball-to-ready-to-use-in-one-step)
- [Guessing the latest MySQL version](https://github.com/ProxySQL/dbdeployer/wiki/getting-remote-tarballs#guessing-the-latest-mysql-version)
- [Practical examples](https://github.com/ProxySQL/dbdeployer/wiki/practical-examples)
- [Standard and non-standard basedir names](https://github.com/ProxySQL/dbdeployer/wiki/standard-and-non-standard-basedir-names)
- [Using short version numbers](https://github.com/ProxySQL/dbdeployer/wiki/using-short-version-numbers)
- [Multiple sandboxes, same version and type](https://github.com/ProxySQL/dbdeployer/wiki/multiple-sandboxes,-same-version-and-type)
- [Using the direct path to the expanded tarball](https://github.com/ProxySQL/dbdeployer/wiki/using-the-direct-path-to-the-expanded-tarball)
- [Ports management](https://github.com/ProxySQL/dbdeployer/wiki/ports-management)
- [Concurrent deployment and deletion](https://github.com/ProxySQL/dbdeployer/wiki/concurrent-deployment-and-deletion)
- [Replication topologies](https://github.com/ProxySQL/dbdeployer/wiki/replication-topologies)
- [Skip server start](https://github.com/ProxySQL/dbdeployer/wiki/skip-server-start)
- [MySQL Document store, mysqlsh, and defaults.](https://github.com/ProxySQL/dbdeployer/wiki/mysql-document-store,-mysqlsh,-and-defaults.)
- [Installing MySQL shell](https://github.com/ProxySQL/dbdeployer/wiki/installing-mysql-shell)
- [Database logs management.](https://github.com/ProxySQL/dbdeployer/wiki/database-logs-management.)
- [dbdeployer operations logging](https://github.com/ProxySQL/dbdeployer/wiki/dbdeployer-operations-logging)
- [Sandbox customization](https://github.com/ProxySQL/dbdeployer/wiki/sandbox-customization)
- [Sandbox management](https://github.com/ProxySQL/dbdeployer/wiki/sandbox-management)
- [Sandbox macro operations](https://github.com/ProxySQL/dbdeployer/wiki/sandbox-macro-operations)
- [dbdeployer global exec](https://github.com/ProxySQL/dbdeployer/wiki/sandbox-macro-operations#dbdeployer-global-exec)
- [dbdeployer global use](https://github.com/ProxySQL/dbdeployer/wiki/sandbox-macro-operations#dbdeployer-global-use)
- [Sandbox deletion](https://github.com/ProxySQL/dbdeployer/wiki/sandbox-deletion)
- [Default sandbox](https://github.com/ProxySQL/dbdeployer/wiki/default-sandbox)
- [Using the latest sandbox](https://github.com/ProxySQL/dbdeployer/wiki/using-the-latest-sandbox)
- [Sandbox upgrade](https://github.com/ProxySQL/dbdeployer/wiki/sandbox-upgrade)
- [Dedicated admin address](https://github.com/ProxySQL/dbdeployer/wiki/dedicated-admin-address)
- [Loading sample data into sandboxes](https://github.com/ProxySQL/dbdeployer/wiki/loading-sample-data-into-sandboxes)
- [Running sysbench](https://github.com/ProxySQL/dbdeployer/wiki/running-sysbench)
- [Obtaining sandbox metadata](https://github.com/ProxySQL/dbdeployer/wiki/obtaining-sandbox-metadata)
- [Replication between sandboxes](https://github.com/ProxySQL/dbdeployer/wiki/replication-between-sandboxes)
- [a. NDB to NDB](https://github.com/ProxySQL/dbdeployer/wiki/replication-between-sandboxes#a.-ndb-to-ndb)
- [b. Group replication to group replication](https://github.com/ProxySQL/dbdeployer/wiki/replication-between-sandboxes#b.-group-replication-to-group-replication)
- [c. Master/slave to master/slave.](https://github.com/ProxySQL/dbdeployer/wiki/replication-between-sandboxes#c.-master/slave-to-master/slave.)
- [d. Hybrid replication](https://github.com/ProxySQL/dbdeployer/wiki/replication-between-sandboxes#d.-hybrid-replication)
- [e. Cloning](https://github.com/ProxySQL/dbdeployer/wiki/replication-between-sandboxes#e.-cloning)
- [Using dbdeployer in scripts](https://github.com/ProxySQL/dbdeployer/wiki/using-dbdeployer-in-scripts)
- [Importing databases into sandboxes](https://github.com/ProxySQL/dbdeployer/wiki/importing-databases-into-sandboxes)
- [Cloning databases](https://github.com/ProxySQL/dbdeployer/wiki/cloning-databases)
- [Compiling dbdeployer](https://github.com/ProxySQL/dbdeployer/wiki/compiling-dbdeployer)
- [Generating additional documentation](https://github.com/ProxySQL/dbdeployer/wiki/generating-additional-documentation)
- [Command line completion](https://github.com/ProxySQL/dbdeployer/wiki/command-line-completion)
- [Using dbdeployer source for other projects](https://github.com/ProxySQL/dbdeployer/wiki/using-dbdeployer-source-for-other-projects)
- [Exporting dbdeployer structure](https://github.com/ProxySQL/dbdeployer/wiki/exporting-dbdeployer-structure)
- [Semantic versioning](https://github.com/ProxySQL/dbdeployer/wiki/semantic-versioning)
- [Do not edit](https://github.com/ProxySQL/dbdeployer/wiki/do-not-edit)
Comment on lines 1 to +85
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

According to CONTRIBUTING.md, this README.md file is generated from mkreadme/readme_template.md and should not be edited directly. Your changes will be lost the next time the README is generated.

Please apply your changes to mkreadme/readme_template.md and then run ./mkreadme/build_readme.sh to regenerate README.md.

Also, when you move the changes to the template, please double-check the year in 'As of 2026', as it seems to be a typo referring to a future date.

Loading