Bootstrap

PostGIS docker版本升级(12-3.2升级到14-3.4)

备份数据

  1. 进入容器:docker exec -it postgres bash
  2. 备份数据:mkdir -p /var/lib/postgresql/data/bakuppg_dumpall -U postgres > /var/lib/postgresql/data/bakup/bakupall.sql

升级容器

  1. 首先删除容器:docker-compose down
  2. 然后备份旧数据:cd /data/xxx-server/data/sudo mv postgres postgres_old
  3. 最后修改编排文件中postgis的版本号
  4. 然后再启动容器:docker-compose up -d
...
  postgres:
    # image: postgis/postgis:12-3.2
    image: postgis/postgis:14-3.4
    container_name: postgres
    restart: always

    ports:
      - "5432:5432"

    environment:
      # 使用上海时区
      - TZ=Asia/Shanghai
      - POSTGRES_PASSWORD=123456
      - POSTGRES_DB=test

    volumes:
      - /data/xxx-server/data/postgres:/var/lib/postgresql/data
...

恢复数据

  1. 拷贝备份的数据:cd /data/xxx-server/data/sudo cp -r postgres_old/bakup postgres/bakup
  2. 进入容器:docker exec -it postgres bash
  3. 执行数据恢复命令:psql -U postgres < /var/lib/postgresql/data/bakup/bakupall.sql

遇到的问题

升级后远程登录密码不对了,需要手动修改密码:alter user postgres password '123456';

;