Сбой контейнера Postgres при запуске со следующим сообщением об ошибке

(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

Какие варианты у меня есть? Я обновил изображение до последней

Часть моего 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

Можно ли преобразовать данные или единственный вариант - удалить контейнер (потеряв все его данные), а затем заново создать его?

3
DmitrySemenov 28 Май 2017 в 00:54

2 ответа

Лучший ответ

Вы вовремя сохранили его, но вам нужно откатиться до предыдущей версии, а затем:

docker exec -it <postgres-container-id> pg_dump db_name > local.dump.sql

Затем, после проверки, что дамп в порядке, очистите том базы данных, обновите postgres и восстановите de dump:

https://www.postgresql.org/docs/9.1/static/backup-dump.html

1
Robert 27 Май 2017 в 22:08

Кроме того, не забудьте очистить старый том pgdata:

docker volume ls и затем docker volume rm <volume-name>

В противном случае ваша ошибка все равно останется.

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

8
prograils 12 Дек 2018 в 06:53