FREEDOM251

Freedom251 › Compare

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.

golang-migrate

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

pgroll

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 pgroll

The facts

golang-migratepgroll
Free planYesYes
Open sourceNot publishedYes
Runs onLinux, Mac, Self-hosted, WindowsLinux, Mac, Self-hosted, Windows
Lowest paid planFree or on requestFree or on request
Plans published12
MakerNot publishedNot published
Websitegithub.compgroll.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