हल... भाग में।
जाहिरा तौर पर, OS X के नवीनतम संस्करण (जैसे Yosemite या El Capitan) को स्थापित करने से /usr/local/var/postgres
में कुछ निर्देशिकाएं हटा दी जाती हैं ।
इसे ठीक करने के लिए आप केवल अनुपलब्ध निर्देशिकाओं को फिर से बनाएँ:
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
या, अधिक संक्षेप में (नैट को धन्यवाद ):
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}}
pg_ctl start -D /usr/local/var/postgres
को फिर से चलाना अब सर्वर सामान्य रूप से शुरू होता है और, कम से कम मेरे लिए, बिना किसी डेटा हानि के।
अपडेट करें
मेरे सिस्टम पर, उनमें से कुछ निर्देशिका पोस्टग्रेज़ के चलने पर भी खाली हैं। हो सकता है, कुछ "सफाई" ऑपरेशन के हिस्से के रूप में, योसेमाइट किसी भी खाली निर्देशिका को हटा देता है? किसी भी मामले में, मैंने आगे बढ़कर प्रत्येक निर्देशिका में एक '.keep' फ़ाइल बनाई ताकि भविष्य में विलोपन को रोका जा सके।
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
नोट :.keep
बनाना उन निर्देशिकाओं में फ़ाइल आपके लॉगफ़ाइल में कुछ शोर पैदा करेगी, लेकिन किसी अन्य चीज़ को नकारात्मक रूप से प्रभावित नहीं करती है।