Corrija o Postgres após instalar o Yosemite

Se você atualizou recentemente seu mac para executar o Yosemite e está usando o Postgres para suas necessidades de desenvolvimento, pode descobrir que o daemon do Postgres não está mais em execução e não pode ser iniciado.

Você verá o seguinte erro:

$ postgres -D /usr/local/var/postgres
FATAL
: could not open directory "pg_tblspc": No such file or directory

Parece que Yosemite excluiu algumas pastas.

Para corrigir isso, você tem algumas opções:

  1. Crie as pastas e coloque um arquivo .keep nelas para que não sejam apagadas novamente. Você pode fazer isso executando os seguintes comandos:
$ mkdir -p /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat_tmp}/
$ touch
/usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat_tmp}/.keep
  1. Se você não tiver nenhum dado importante armazenado em sua instância local do Postgres, tente executar
$ rm -r /usr/local/var/postgres
$ initdb
-D /usr/local/var/postgres

Note que esta abordagem eliminará todos os bancos de dados existentes e você pode ter que executar novamente suas tarefas rake (reset, seed) para recriá-los.