pkg.soopen package index

brew / rank 8145

Install schema-evolution-manager with Homebrew

Manage postgresql database schema migrations. Version 0.9.65 via Homebrew; verified 2026-11-03.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install schema-evolution-manager

local Homebrew formula metadata

overview

Package summary

Manage postgresql database schema migrations

Commands and aliases

  • sem-add
  • sem-apply
  • sem-baseline
  • sem-dist
  • sem-info
  • sem-init

history

Project history and usage

Schema Evolution Manager, or sem, is a suite of small command-line tools for creating, packaging, baselining, inspecting, and applying source-controlled PostgreSQL schema migrations.

Project history

Schema Evolution Manager was created at Gilt Groupe to standardize PostgreSQL schema changes as ordinary source code. It records applied scripts in its own PostgreSQL schema and packages migrations as reproducible tarballs named from Git tags.

Its design was shaped by production experience: small timestamped changes, independent schema deployments, reproducible artifacts, and no automatic rollback. The project was publicly presented at PGDay NYC in 2013.

Adoption history

Gilt Groupe began using SEM in early 2012. The official README reports that it improved the reliability of production schema deployments across dozens of independent PostgreSQL databases.

The project was subsequently made available through RubyGems, direct installation, and Homebrew. Its explicitly framework-independent design allowed database changes to be managed separately from any particular application stack.

How it is used

A typical workflow initializes a Git repository with sem-init, adds timestamped SQL with sem-add, commits the scripts, builds a tagged tarball with sem-dist, and applies pending scripts with sem-apply. sem-baseline can register pre-existing migrations without executing them.

Database connection parameters can be supplied as a PostgreSQL URL or separate host, port, database, and user options. The official guide recommends ~/.pgpass for persistent credentials or --password for a temporary prompt-managed credential file.

Why package nerds care

SEM is an opinionated example of Unix-style migration tooling: several narrow commands, minimal dependencies, Git-managed SQL, immutable release tarballs, and deliberately no rollback facility. It captures an operational school that favors forward-only, peer-reviewed, incremental database changes over framework-bound migration abstractions.

Timeline

  • Early 2012: Gilt Groupe began using SEM internally.
  • 2013: SEM was presented at PGDay NYC.
  • 2013–2016: The official repository's copyright notice records Gilt Groupe stewardship during this period.

Related projects

  • PostgreSQL and psql: SEM applies migration scripts through PostgreSQL tooling.
  • Git: SEM uses repositories and tags as the history and release model for schema changes.
  • RubyGems and Homebrew: Officially documented installation channels.

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,sql

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 1 platform targets.

Recommended review

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

local files

Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.

Credential files

Credential-bearing paths to review before unattended agent runs.

Unix
~/.pgpass

executables

Installed executables

CommandKindExposureNote
sem-addcliglobal executable
sem-applycliglobal executable
sem-baselinecliglobal executable
sem-distcliglobal executable
sem-infocliglobal executable
sem-initcliglobal 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-11-04
manager version0.9.65
manager updated2026-11-03
local dataok
upstreamcurrent
latest detected0.9.68

https://github.com/mbryzek/schema-evolution-manager

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:schema-evolution-manager
Version0.9.65
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/schema-evolution-manager
Homepagehttps://github.com/mbryzek/schema-evolution-manager
Repositoryhttps://github.com/mbryzek/schema-evolution-manager
LicenseApache-2.0
Source archivehttps://github.com/mbryzek/schema-evolution-manager/archive/refs/tags/0.9.68.tar.gz
Last updated2026-11-03T23:31:03Z
Pulseupdated
Uses from macOSruby
Bottleavailable (on all)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameschema-evolution-manager
Aliases
  • sem
Version Scheme0
Revision0
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • stable

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
  • cross-ecosystem install command graph
  • curated configuration and credential file locations
  • curated package history
  • package relationship graph
  • package version freshness
  • package-page enrichment
  • pkg.so package database
  • pkgdb category and tag curation