pt-online-schema-change vs sqlx-cli
pt-online-schema-change
docs.percona.comsqlx-cli
github.comSide by side
| Figure | pt-online-schema-change | sqlx-cli |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Database Migration Tools | 7.5 (#21) | 8.0 (#11) |
| License | The program is free software under either the GNU General Public License version 2 or the Perl Artistic License. | The SQLx repository lists Apache-2.0 and MIT license files. |
| Purpose | pt-online-schema-change alters MySQL table structures without blocking reads or writes by building and populating a copy of the table, then replacing the original. | SQLx CLI is a command-line utility for managing databases and migrations and enabling offline mode for SQLx query macros. |
| Support | Percona says its Community Forum service is free and response times vary with the complexity of the question. | The SQLx repository links to its FAQ and Discord community for questions. |
Plans
pt-online-schema-change
- Percona Toolkit (includes pt-online-schema-change)Free
In their own words
pt-online-schema-change
pt-online-schema-change has no write-up on Specifiction yet; its figures are above.
sqlx-cli
sqlx-cli is SQLx’s command-line utility for managing databases, migrations, and offline preparation for query macros. It can create or drop the database identified by a database URL, and create, run, inspect, or revert migrations, including paired up and down scripts. The `cargo sqlx prepare` command writes query metadata to a `.sqlx` directory. Once that metadata is checked into version control, builds can run without an active database connection. The `--check` option returns a nonzero status if the saved metadata is out of date, a behavior the project describes for continuous integration.
For workspaces whose crates use query macros, `cargo sqlx prepare --workspace` places one `.sqlx` directory at the workspace root. Commands accept the database URL through `--database-url`, the `DATABASE_URL` environment variable, or a `.env` file in the current directory. The project lists PostgreSQL, MySQL, MariaDB, and SQLite support, with installation options for database drivers and TLS backends. The CLI is free and open source under the user’s choice of Apache-2.0 or MIT license. The README notes that MSSQL support was removed pending a full driver rewrite.