Side by side
golang-migrate vs pgroll
Both stand on database migration tools. Which one you can start free with, which one lets you read the code, and what each costs once you pay.
Free plan LinuxMacSelf-hosted+1
golang-migrate offers ordered database changes through either a command-line tool or Go library, with a broad list of database drivers and migration sources. Check the supported project versions and license notice requirements before adopting it.
Visit golang-migrate Free plan Open source LinuxMacSelf-hosted+1
pgroll provides a reversible migration workflow for PostgreSQL and keeps schema versions available during application rollout. Check its PostgreSQL 14 row-level security limitation and the manual work that ORM-generated migrations may require.
Visit pgrollThe facts
| golang-migrate | pgroll | |
|---|---|---|
| Free plan | Yes | Yes |
| Open source | Not published | Yes |
| Runs on | Linux, Mac, Self-hosted, Windows | Linux, Mac, Self-hosted, Windows |
| Lowest paid plan | Free or on request | Free or on request |
| Plans published | 1 | 2 |
| Maker | Not published | Not published |
| Website | github.com | pgroll.com |
| On database migration tools | #7 of 32 | #3 of 32 |
golang-migrate: what it does well
- Free and open source under the MIT License
- Available as a CLI or Go library
- Supports multiple database drivers and migration sources
- Includes up and down migration files
What to know first
- 3.x and earlier are unsupported
- MIT License requires retaining copyright and permission notices
- No configuration-file search or automatic environment-variable injection
pgroll: what it does well
- Keeps old and new schema versions available together.
- Active migrations can be rolled back.
- Automatically backfills columns when needed.
- Supports PostgreSQL 14 and later.
- Free and licensed under Apache License 2.0.
What to know first
- PostgreSQL 14 versioned views do not respect RLS policies.
- ORM-generated migrations may need manual data migrations.
- ORM SQL may need consolidation into fewer operations.
Alternatives to golang-migrate Alternatives to pgroll The whole list