Question

When I tried to run psql, I got

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"?

and when I checked Server.log, I saw:

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.

I tried to follow this tutorial (from 9.4 to 9.5) for upgrading 9.6.1, but keep getting this error message

cannot write to log file pg_upgrade_internal.log
Failure, exiting

after running

$ 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/

Does anyone have any idea what I am missing/doing wrong? Thanks!


System:

  • MacOS 10.12.2
  • PostgreSQL installed with Homebrew
Was it helpful?

Solution

If your database size is not large, you can use pg_dump and pg_dumpall to take database structure and data dump in the form of sql queries from posgtres 9.5 and restore the same in postgres 9.6.1.

If the database size is too large, then go for pg_upgrade. By looking at the error, it seems the user does not have permissions on the directory and not able to write in the log file. Also to save time, i would suggest you use -k option of pg_upgrade for faster upgrade. Note that -k will create soft links of your old data in Newly installed data directory. So you will not be able to delete old data.

OTHER TIPS

After 9 months, I updated to PostgreSQL 10 from 9.6.5 with pg_upgrade:

1) Stop postgresql:

brew services stop postgresql

2) Initialize postgresql10 database:

initdb /usr/local/var/postgres10.0 -E utf8

3) Double check the newly created db:

ls /usr/local/Cellar/postgresql/

4) Run pq_upgrade to move data to new database:

pg_upgrade \
  -d /usr/local/var/postgres \
  -D /usr/local/var/postgres10.0 \
  -b /usr/local/Cellar/postgresql/9.6.5/bin/ \
  -B /usr/local/Cellar/postgresql/10.0/bin/ \
  -v

5) Rename old database:

mv /usr/local/var/postgres /usr/local/var/postgres9.6.5

6) Rename new database to postgres:

mv /usr/local/var/postgres10.0 /usr/local/var/postgres

7) Restart postgresql:

brew services start postgresql

Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top