Doctrine Migrations vs pt-online-schema-change
Doctrine Migrations
doctrine-project.orgpt-online-schema-change
docs.percona.comSide by side
| Figure | Doctrine Migrations | pt-online-schema-change |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Database Migration Tools | 8.5 (#6) | 7.5 (#21) |
| Intended users | The Doctrine Project describes its libraries as PHP libraries focused primarily on persistence services and related functionality. | Percona describes the Toolkit as advanced open-source command-line tools for DBAs and database operations. |
| License | The GitHub repository identifies the project as MIT licensed. | The program is free software under either the GNU General Public License version 2 or the Perl Artistic License. |
| Purpose | Doctrine Migrations adds database schema versioning and helps deploy schema changes. | 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. |
| Support | The documentation directs users to the Doctrine mailing list, Slack, GitHub bug reporting, and Stack Overflow for help. | Percona says its Community Forum service is free and response times vary with the complexity of the question. |
Plans
pt-online-schema-change
- Percona Toolkit (includes pt-online-schema-change)Free
In their own words
Doctrine Migrations
Doctrine Migrations is a free, self-hosted PHP library for versioning database schemas and deploying changes in a reviewable, testable way. Built on Doctrine DBAL and ORM, it can generate migration code by comparing a database schema with ORM mapping information, with documentation covering diffing with or without the ORM. Console commands show migration status, perform dry runs, execute one or more migrations, and revert changes. Generated SQL can be written to a file with --write-sql instead of applied directly, while --no-interaction supports unattended execution. Transaction controls cover all-or-nothing behavior and running with or without transactions. Install it through Composer, which provides a doctrine-migrations console application, or download a PHAR from GitHub releases. Doctrine lists integrations for Symfony, Zend, Laravel, Silex, and Nette. Version 3.9.8 is stable; 3.8 and earlier are unmaintained.
pt-online-schema-change
pt-online-schema-change has no write-up on Specifiction yet; its figures are above.