在容器的映像更新为最新映像后,Postgres容器崩溃,数据库文件与服务器不兼容

时间:2017-05-27 21:54:29

标签: postgresql docker docker-compose

启动时

Postgres 容器崩溃,并显示以下错误消息

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

我有哪些选项?我已将图像更新为最新图像

docker-compose.yml

的部分内容
parse

是否可以转换数据或唯一的选择是删除容器(丢失所有数据)然后重新创建它?

3 个答案:

答案 0 :(得分:2)

我收到此错误,是因为我一直在使用最新版本的postgres,因为最后没有定义标签。然后,最新版本切换到13,数据不再兼容。也许只是在最后添加一个版本可能也会有所帮助。 -> 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

答案 1 :(得分:1)

您准时保存它,但您需要回滚到以前的版本,然后:

let fixArms = SKPhysicsJointFixed.joint(withBodyA: armLeft.physicsBody!, bodyB: armRight.physicsBody!, anchor: CGPoint.zero)
self.physicsWorld.add(fixArms)

然后,在检查转储是否正常后,清空数据库的卷,升级postgres并恢复de dump:

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

答案 2 :(得分:1)

此外,别忘了清除旧的pgdata卷:

docker volume ls然后是docker volume rm <volume-name>

否则,您的错误仍然存​​在。

请参见https://github.com/ckan/ckan/issues/4164#issuecomment-388069003