# postgresql **Repository Path**: edikai/postgresql ## Basic Information - **Project Name**: postgresql - **Description**: 1.pg docker容器大版本升级; 2.pg+postgres+timescaledb 镜像; - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-07-06 - **Last Updated**: 2024-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PostgreSQL 相关工具及备忘 ## pg-upgrade PostgreSQL的大版本升级镜像工具 参考以下: https://github.com/tianon/docker-postgres-upgrade/tree/master https://github.com/docker-library/postgres/issues/37 ### 具体使用 1.构建工具镜像,运行命令如下 ```javascript // 原生镜像的大版本升级 docker build -f ./Dockerfile-pg -t pg-upgrade . // PostgreSQL+PostgreGIS+TimescaleDB镜像的大版本升级 docker build -f ./Dockerfile-tsdb -t tsdb-upgrade . ``` 2.关闭PostgreSQL数据库 docker stop pg-13 3.数据备份,将原数据文件路径备份,/var/lib/postgresql/13/data 4.升级 ```javascript // 原生镜像的大版本升级 docker build -f ./Dockerfile-pg -t pg-upgrade . /** PostgreSQL+PostgreGIS+TimescaleDB镜像的大版本升级 * 命令模板:docker run --rm -v $PGDATAOLD:/var/lib/postgresql/13/data -v PGDATANEW:/var/lib/postgresql/15/data tsdb-upgrade * $PGDATAOLD:旧版本数据文件路径 * $PGDATANEW:新版本数据文件路径 * 示例如下: */ docker run --rm \ -v /data/postgres/13/_data:/var/lib/postgresql/13/data \ -v /data/postgres/15/data:/var/lib/postgresql/15/data \ tsdb-upgrade docker run --rm \ -v /data/postgres/13/_data:/var/lib/postgresql/13/data \ -v /data/postgres/15/data:/var/lib/postgresql/15/data \ pg-upgrade ``` ### 镜像相关文件说明 - docker-upgrade:工具脚步,不需要修改 - Dockerfile-pg:PostgreSQL原生镜像的大版本升级 - Dockerfile-tsdb:PostgreSQL+PostgreGIS+TimescaleDB镜像的大版本升级,基础镜像及版本需要和PostGIS-TimescaleDB自制镜像一致,否则会失败 ### 注意事项 - 如果存在自定义表空间,升级时可能会报错(找不到表空间),该问题的根本原因未找到,暂时使用以下解决方案 ```java 解决方案: 1.关闭PostgreSQL数据库 2.备份数据文件 3.启动PostgreSQL数据库 4.将使用自定表空间的数据库修改为默认表空间 5.删除自定义表空间 6.重复上述升级步骤 ``` ## PostGIS-TimescaleDB PostgreSQL+PostgreGIS+TimescaleDB自制镜像 - Dockerfile:最新版本镜像 - Dockerfile.pg13-3-2:13-PostgreSQL版本,3-PostGIS版本,2-TimescaleDB版本