Mac OS X installers for PostgreSQL, and GIS extensions PostGIS and pgRouting.

NOTE: I do not support any other Postgres distribution in my extensions. Please do not try to install PostGIS in another Postgres and then ask why it won’t install.

Postgres 12 (for macOS High Sierra 10.13+)

Extensions require Postgres 12 above

Transition Extensions for Postgres 9.6 to 12

These are used only if you need to upgrade from Postgres 9.6 to Postgres 12.

PostgreSQL itself does not require anything extra, and includes the Pl/Python language (uses the system Python). Initial database setup is done for you if you have never installed Postgres before.

The PostgreSQL Client does not include the server. This is handy if you just need to connect to another computer that is running a Postgres server. Also included are the client libraries and headers, so developers don’t have to install the full Postgres to add Postgres support to their software. The full Postgres package includes Postgres Client, so there is no need to install the client if you already installed the server.

The PostGIS extension requires the GDAL Complete 3.1 framework package. The pgRouting extension does not require anything extra, though it can use PostGIS. All extensions require the Postgres server and won’t function with the client-only package.

Yosemite Upgrade

If you upgrade your Mac to Yosemite (possibly also Mavericks), Apple’s upgrade process kills your Postgres data folder — the data is present, but some folders are missing, so Postgres won’t start, and won’t give any errors as to why or that it even failed to start.

If Postgres is not starting after upgrading to Yosemite, open a Terminal and run the following commands:

sudo launchctl unload /Library/LaunchDaemons/org.postgresql.postgres.plist
sudo cd /usr/local/pgsql/data

Make sure you are in the /usr/local/pgsql/data folder before continuing. pwd will tell you where you are.

sudo mkdir -p {pg_tblspc,pg_twophase,pg_stat,pg_stat_tmp,pg_replslot,pg_snapshots,pg_logical}
sudo mkdir -p pg_logical/{snapshots,mappings}
sudo chown -R _postgres *
sudo launchctl load /Library/LaunchDaemons/org.postgresql.postgres.plist