Terpecahkan... sebagian.
Rupanya, Menginstal versi terbaru OS X (mis. Yosemite atau El Capitan) menghapus beberapa direktori di /usr/local/var/postgres
.
Untuk memperbaikinya, Anda cukup membuat ulang direktori yang hilang:
mkdir -p /usr/local/var/postgres/pg_commit_ts
mkdir -p /usr/local/var/postgres/pg_dynshmem
mkdir -p /usr/local/var/postgres/pg_logical/mappings
mkdir -p /usr/local/var/postgres/pg_logical/snapshots
mkdir -p /usr/local/var/postgres/pg_replslot
mkdir -p /usr/local/var/postgres/pg_serial
mkdir -p /usr/local/var/postgres/pg_snapshots
mkdir -p /usr/local/var/postgres/pg_stat
mkdir -p /usr/local/var/postgres/pg_stat_tmp
mkdir -p /usr/local/var/postgres/pg_tblspc
mkdir -p /usr/local/var/postgres/pg_twophase
Atau, lebih singkatnya (terima kasih kepada Nate ):
mkdir -p /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}
Menjalankan kembali pg_ctl start -D /usr/local/var/postgres
sekarang memulai server secara normal dan, setidaknya bagi saya, tanpa kehilangan data.
PERBARUI
Di sistem saya, beberapa direktori itu kosong bahkan ketika Postgres sedang berjalan. Mungkin, sebagai bagian dari beberapa operasi "pembersihan", Yosemite menghapus direktori kosong? Bagaimanapun, saya melanjutkan dan membuat file '.keep' di setiap direktori untuk mencegah penghapusan di masa mendatang.
touch /usr/local/var/postgres/{{pg_commit_ts,pg_dynshmem,pg_replslot,pg_serial,pg_snapshots,pg_stat,pg_stat_tmp,pg_tblspc,pg_twophase},pg_logical/{mappings,snapshots}}/.keep
Catatan :Membuat .keep
file di direktori tersebut akan membuat beberapa gangguan di file log Anda, tetapi tampaknya tidak berdampak negatif pada hal lain.