Como eu atualizo o banco de dados postgresl? Erro de incompatibilidade

25

Eu instalei o postgresql via Homebrew.

Eu tenho o seguinte problema após a atualização:

FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.1.2.

Alguma dica sobre como atualizar? Eu tentei o seguinte:

$ pg_upgrade -d /usr/local/var/postgres/ -D /usr/local/var/postgres -b 
/usr/local/Cellar/postgresql/9.0.4/bin -B /usr/local/Cellar/postgresql/9.1.2/bin

Não funcionou. Aqui está a saída.

Performing Consistency Checks
Checking current, bin, and data directories                 ok
Checking cluster versions                                   
This utility can only upgrade to PostgreSQL version 9.1.
Failure, exiting

erro.

    
por Daniel Fischer 20.12.2011 / 07:51

4 respostas

35

Para mim, no OS X com o Homebrew, foi assim.

  1. Instalou novos postgres com o Homebrew (começou a receber o erro)
  2. mv /usr/local/var/postgres /usr/local/var/postgres.old
  3. initdb -D /usr/local/var/postgres
  4. pg_upgrade -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/local/Cellar/postgresql/9.1.2/bin -d /usr/local/var/postgres.old -D /usr/local/var/postgres
  5. ./delete_old_cluster.sh (este script é criado automaticamente para você no diretório atual quando você passa pelas etapas acima)
  6. rm delete_old_cluster.sh
por 24.01.2012 / 04:43
6

Veja como eu fiz no fedora:

  • renomeie seu diretório de dados antigo para algo como data.old
  • execute postgresql-setup initdb , isso criará um novo diretório de dados
  • execute pg_upgrade -b /usr/lib64/pgsql/postgresql-9.0/bin/ -B /usr/bin/ -d data.old/ -D data

Eu acho que você seria:

pg_upgrade -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/bin/ -d /usr/local/var/postgres.old/ -D /usr/local/var/postgres/
  • você também quer copiar pg_hba.conf e postgresql.conf de data.old para o novo diretório de dados.
  • reinicie o postgresql
por 20.12.2011 / 08:39
1

Eu perdi / esqueci a linha "initdb"

initdb -D / usr / local / var / postgres

Depois que o banco de dados foi criado, o pg_upgrade funcionou no meu sistema Windows.

    
por 09.11.2015 / 14:24