EVERYDAY USE

Versions and detection

How Morrow selects native binaries and avoids duplicate installations.

Version selection is part of creating an instance. There is no separate installation step in the app.

Automatic selection

morrow db create redis local-cache --start

With no --version, Morrow reuses an available compatible server. If none is present, it downloads a compatible release from the configured catalog. A package without a published distribution requires a complete published distribution or an existing installation.

Choose a release series

morrow db create postgresql legacy-app --version 16 --start
morrow db create postgresql new-app --version 17 --start

The selected release series follows published catalog releases. Existing formula names remain recorded for legacy installations; new channels come from the portable catalog. An existing binary in the requested series is reused; a different major release is not silently substituted.

Each instance stores its exact executable path and patch version. These two PostgreSQL instances keep separate data and ports.

Detect an existing server

Morrow checks managed distribution receipts, existing Homebrew kegs, server binaries on PATH, Herd service directories, and Postgres.app. It reads the executable’s reported version and checks the initialization tools needed to create separate data.

A MariaDB binary exposed under a MySQL compatibility name is classified as MariaDB. Client-only tools such as psql, mysql, or mongosh do not count as a complete server installation.

morrow db versions
morrow db channels postgresql
morrow doctor

Upgrade data deliberately

Ordinary instance settings cannot change its executable. Compatible maintenance releases have an explicit backup and update workflow. For another release series, create a new instance and migrate data using the database’s supported tools. Automated migration between series is planned.

External Homebrew cleanup may remove a recorded executable. Morrow reports a missing version and preserves the data. Historical patches must be published in the configured catalog. Uninstalling shared native packages is not implemented.

Advanced binary preparation

For scripts that explicitly want to prepare software without creating data, the CLI retains an advanced command:

morrow db install postgresql 17

The normal workflow remains db create; it already handles this preparation when needed.

Edit this page on GitHub ↗
Search all 17 guides esc to close