Automic VaultAutomic Vault

brew

Install golang-migrate with Homebrew, dnf, Nix, scoop, apt

Database migrations CLI tool. Version 4.19.1 via Homebrew; verified from local package data.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install golang-migrate

local Homebrew formula metadata

Linux

Fedora dnfverified · 92%
sudo dnf install migrate

Fedora Rawhide package metadata · migrate · source: dl.fedoraproject.org

Nixverified · 92%
nix profile install nixpkgs#migrate

nixpkgs package indexes · pkgs/by-name/mi/migrate/package.nix · source: api.github.com

Ubuntu aptverified · 92%
sudo apt install python-migrate-doc

Ubuntu 24.04 LTS package indexes · python-migrate-doc · source: archive.ubuntu.com

Windows

Scoopverified · 92%
scoop install main/migrate

Scoop official bucket manifest trees · bucket/migrate.json · source: api.github.com

overview

Package summary

Database migrations CLI tool

Commands and aliases

  • migrate

history

Project history and usage

golang-migrate is a Go database migration project distributed as both a CLI and a Go library. It applies ordered migration files from source drivers to database drivers, deliberately keeping database drivers simple while centralizing migration logic in the core package.

Project history

The project traces back to `mattes/migrate`, a database migration repository created in 2014. The maintained `golang-migrate/migrate` repository was created in January 2018 and states that it was forked from `mattes/migrate`.

The fork preserved the core CLI/library model while continuing the driver architecture. Its README documents a broad matrix of database drivers, including PostgreSQL, MySQL/MariaDB, SQLite, SQL Server, Cassandra/ScyllaDB, ClickHouse, MongoDB, CockroachDB, and cloud-oriented sources such as GitHub, GitLab, S3, and Google Cloud Storage.

The project standardized on Go module import paths for v4 and explicitly marks v3 as unsupported in its README. That version boundary matters because many Go projects embed migration support directly in their own binaries rather than only shelling out to the CLI.

Adoption history

golang-migrate became a common Go ecosystem migration tool because it works both as a standalone `migrate` binary and as an importable library. The README points to packagecloud deb packages, Docker images, GitHub releases, and Go documentation, while the batch input records Homebrew, Fedora, Nix, Scoop, and other package-manager entries.

The maintained fork's GitHub repository had over 18,000 stars and more than 1,500 forks in the 2026 GitHub API snapshot used for this batch, making it one of the better-known Go-native database migration tools.

How it is used

The standard workflow is to create paired up/down SQL files with `migrate create`, then run them with a source such as `file://path/to/migrations` and a database URL. The getting-started guide emphasizes running migrations up, down, and up again before committing them.

Operationally, golang-migrate is intentionally explicit: the README says the CLI has no config search paths, no config files, and no magic environment-variable injection. Users pass source and database URLs directly, and database credentials normally live in those URLs or in caller-managed secret handling rather than in a tool-owned credentials file.

The getting-started guide highlights dirty database states, force operations, idempotent migrations, transaction wrapping, and database locking when multiple app instances may run migrations. Those warnings are why package users often treat `migrate` as deployment infrastructure rather than a casual development helper.

Why package nerds care

For package nerds, golang-migrate is the archetypal Go single-binary infrastructure tool: it can be installed from Homebrew, run from Docker, vendored as a library, or baked into a release artifact. The driver split also makes downstream builds interesting, because packagers and application authors decide which database/source drivers to include.

Its significance is also cultural: it represents the Go preference for explicit URLs, small binaries, and predictable failure over framework-managed migration magic. That makes it popular in CI pipelines and container entrypoints where reproducibility beats convenience.

Timeline

  • 2014: `mattes/migrate` repository created for database migrations in Go.
  • 2017: `mattes/migrate` v3 preview releases published.
  • 2018: `golang-migrate/migrate` repository created as a fork of `mattes/migrate`.
  • 2018: `golang-migrate/migrate` v3.1.0 and later v3 releases published.
  • 2019-2026: v4 import path and driver ecosystem documented as the supported line; v3 documented as unsupported.

Related projects

  • `mattes/migrate` is the direct upstream ancestor named by the maintained repository.
  • The README points users coming from other migration systems to `migradaptor`, and it links broader database-tool alternatives through Awesome Go.
  • Database and source drivers connect golang-migrate to PostgreSQL, MySQL/MariaDB, SQLite, MongoDB, ClickHouse, SQL Server, GitHub, GitLab, S3, and Google Cloud Storage workflows.

security posture

Risk level: blue

broad file, network, media, or database tool signal.

Risk classifier

blue risk · medium confidence · tool

Why

  • broad file, network, media, or database tool signal

Signals

  • text:database

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Build metadata lists 1 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
migratecliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version4.19.1
manager updated
local dataok
upstreamcurrent
latest detectedv4.19.1

https://github.com/golang-migrate/migrate

  • infoNo package-manager update timestamp was available.low confidence

install metadata

Package metadata

Package keybrew:golang-migrate
Version4.19.1
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/golang-migrate
Homepagehttps://github.com/golang-migrate/migrate
Repositoryhttps://github.com/golang-migrate/migrate
Upstream docshttps://github.com/golang-migrate/migrate#readme
LicenseMIT
Source archivehttps://github.com/golang-migrate/migrate/archive/refs/tags/v4.19.1.tar.gz
Build dependenciesgo
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Namegolang-migrate
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix92%

migrate

nix profile install nixpkgs#migrate
  • installed executable or alias match
  • Matched by: Migrate
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/mi/migrate/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt92%

python-migrate-doc 0.13.0-0ubuntu2

Database schema migration for SQLAlchemy - doc

https://github.com/openstack/sqlalchemy-migrate

sudo apt install python-migrate-doc
  • Section: doc
  • Architecture: all
  • Source Package: migrate
  • 1 dependencies
  • installed executable or alias match
  • Matched by: Migrate
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: python-migrate-doc from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz
Ubuntu apt92%

python3-migrate 0.13.0-0ubuntu2

Database schema migration for SQLAlchemy - Python 3.x

https://github.com/openstack/sqlalchemy-migrate

sudo apt install python3-migrate
  • Section: python
  • Architecture: all
  • Source Package: migrate
  • 7 dependencies
  • 1 optional deps
  • installed executable or alias match
  • Matched by: Migrate
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: python3-migrate from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz
dnf92%

migrate 4.19.1-4.fc44

Go database migrations library and program

https://github.com/golang-migrate/migrate

sudo dnf install migrate
  • License: Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSL-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC0-1.0 AND ISC AND LicenseRef-Fedora-Public-Domain AND
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: migrate
  • 3 dependencies
  • 2 provides
  • installed executable or alias match
  • Matched by: Migrate
Fedora Rawhide package metadata · dl.fedoraproject.org · Fedora Rawhide package metadata: migrate from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst
Scoop92%

main/migrate

scoop install main/migrate
  • installed executable or alias match
  • Matched by: Migrate
Scoop official bucket manifest trees · api.github.com · Scoop official bucket manifest trees: bucket/migrate.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • Nucleus package database
  • av.db category and tag curation
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • package relationship graph
  • package version freshness
  • package-page enrichment