db-migrate vs pgroll
db-migrate
github.compgroll
pgroll.comSide by side
| Figure | db-migrate | pgroll |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 2 |
| Spec score · Database Migration Tools | 8.5 (#5) | 8.5 (#7) |
| Documentation | The repository links to the project's full documentation and usage examples on Read the Docs. | Documentation includes getting started material, tutorials, guides, examples and command references. |
| License | The project is distributed under the MIT License. | The repository is licensed under Apache License 2.0. |
| Purpose | db-migrate describes itself as a database migration framework for Node.js. | pgroll is an open-source command-line tool for safe, reversible PostgreSQL schema migrations that keep multiple schema versions available simultaneously. |
| Support | The repository invites users to seek project support through backer and sponsor contributions. | Users are directed to GitHub issues, GitHub discussions and Discord for assistance. |
Plans
In their own words
db-migrate
db-migrate is a free, open-source database migration framework for Node.js applications. It runs on Linux and can be self-hosted. The command-line interface provides up, down, reset, create, and db commands for applying, rolling back, resetting, creating, and managing migrations. Supported databases listed by the project include MySQL, PostgreSQL, sqlite3, MongoDB, and CockroachDB, with database drivers installed separately. Migration files support callback-based or promise-based interfaces, while the --sql-file option creates separate SQL files for migration-up and migration-down statements. Applied migrations are recorded in a migrations table. Environment settings can come from database.json, with command-line choices for the environment and configuration file. Database usernames and passwords can reference environment variables. Global and local npm installation are documented. Node.js 24 and newer are officially supported; package metadata specifies version 8.0.0 or later. Rollback is supported, and the format is mixed.
pgroll
pgroll is an open-source command-line tool for PostgreSQL schema migrations that keeps old and new schema versions available while applications move between them. Its expand/contract workflow lets clients choose a version through PostgreSQL's search_path. The project describes migrations as zero-downtime and says it applies changes without locking the database; it can also backfill columns automatically when needed. For breaking changes, pgroll builds virtual schemas from views over physical tables and uses triggers to carry writes between old and new columns. Active migrations can be rolled back to the previous schema version. It supports PostgreSQL 14 and later, including RDS and Aurora, and is available for Linux, macOS, and Windows or self-hosting. It can convert SQL generated by ORMs, with examples for Alembic, Django, and Drizzle, though manual data migrations and SQL consolidation may be needed. On PostgreSQL 14, its versioned views do not respect row-level security policies, which can make it a poor choice for RLS users on that version. The project is licensed under Apache License 2.0.