Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Postgres container crashes with `database files are incompatible with server` after container's image has been updated to the latest one

Postgres container crash on launch with the following error message

(project) ➜  project git:(feature/62-api-custom-image-categories) ✗ docker-compose up postgres
Starting project_postgres_1 ... 
Starting project_postgres_1 ... done
Attaching to project_postgres_1
postgres_1        | FATAL:  database files are incompatible with server
postgres_1        | DETAIL:  The data directory was initialized by PostgreSQL version 9.5, which is not compatible with this version 9.6.3.
project_postgres_1 exited with code 1

What options do I have? II have updated image to the latest one

Portion of my docker-compose.yml

version: '2'

volumes:
  ipython_history: {}

services:
  postgres:
    image: mdillon/postgis
    ports:
     - "5432:5432"
    environment:
      - POSTGRES_DB=p_dev
      - POSTGRES_USER=p_user
      - POSTGRES_PASSWORD=password

Is it possible to convert the data or the only option is to delete the container (losing all its data) and then re-create it?

like image 202
DmitrySemenov Avatar asked May 27 '17 21:05

DmitrySemenov


2 Answers

Additionally don't forget to clear the old pgdata volume:

docker volume ls and then docker volume rm <volume-name>

Otherwise your error will still remain.

See https://github.com/ckan/ckan/issues/4164#issuecomment-388069003

like image 52
prograils Avatar answered Oct 21 '22 05:10

prograils


I got this error because i was always using the latest version of postgres by not defining a tag at the end. Then the latest version switched to 13 and the data was not compatible anymore. Maybe just adding a version at the end might help too. -> postgres:12

postgres:
image: postgres:12
restart: always
environment: 
  POSTGRES_USER: ${POSTGRES_USER}
  POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
ports:
  - "5432:5432"
volumes:
  - db_data:/var/lib/postgresql/data
like image 6
Martin Avatar answered Oct 21 '22 06:10

Martin