Quando tentei correr psql
, consegui
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
e quando verifiquei Server.log
, vi:
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.5,
which is not compatible with this version 9.6.1.
Tentei seguir este tutorial (de 9.4 para 9.5) para atualizar 9.6.1, mas continuo recebendo esta mensagem de erro
cannot write to log file pg_upgrade_internal.log
Failure, exiting
depois de correr
$ pg_upgrade -v \
> -d /usr/local/var/postgres \
> -D /usr/local/var/postgres9.6.1 \
> -b /usr/local/Cellar/postgresql/9.5/bin/ \
> -B /usr/local/Cellar/postgresql/9.6.1/bin/
Alguém tem alguma ideia do que estou perdendo/fazendo de errado? Obrigado!
Sistema:
- Mac OS 10.12.2
- PostgreSQL instalado com Homebrew
Após 9 meses, atualizei para PostgreSQL 10 de 9.6.5 com
pg_upgrade
:1) Pare o postgresql:
brew services stop postgresql
2) Inicialize o banco de dados postgresql10:
initdb /usr/local/var/postgres10.0 -E utf8
3) Verifique novamente o banco de dados recém-criado:
ls /usr/local/Cellar/postgresql/
4) Execute pq_upgrade para mover os dados para o novo banco de dados:
5) Renomeie o banco de dados antigo:
mv /usr/local/var/postgres /usr/local/var/postgres9.6.5
6) Renomeie o novo banco de dados para postgres:
mv /usr/local/var/postgres10.0 /usr/local/var/postgres
7) Reinicie o postgresql:
brew services start postgresql
Se o tamanho do seu banco de dados não for grande, você pode usar pg_dump e pg_dumpall para obter a estrutura do banco de dados e despejo de dados na forma de consultas sql do posgtres 9.5 e restaurá-los no postgres 9.6.1.
Se o tamanho do banco de dados for muito grande, vá para pg_upgrade. Olhando para o erro, parece que o usuário não tem permissões no diretório e não pode gravar no arquivo de log. Além disso, para economizar tempo, sugiro que você use a
-k
opção pg_upgrade para uma atualização mais rápida. Observe que-k
criará links suaves de seus dados antigos no diretório de dados recém-instalado. Portanto, você não poderá excluir dados antigos.