docker postgresql 9 数据迁移到 postgresql 13
时间: 2024-10-19 19:02:07 浏览: 38
从Docker容器中的PostgreSQL 9版本迁移数据到PostgreSQL 13版本,你需要遵循几个步骤:
1. **停止服务**: 首先,确保停止原来的PostgreSQL 9容器,避免数据在迁移过程中被修改。
```bash
docker stop <your_postgresql_9_container_name>
```
2. **备份数据**: 使用PostgreSQL的数据导出命令`pg_dump`,将9.x数据库备份到文件。
```bash
docker exec -it <your_postgresql_9_container_name> pg_dump -U your_username -Fc -b -v your_database > backup.sql
```
3. **创建新容器**: 创建一个新的PostgreSQL 13容器,确保配置允许你导入备份文件。
```bash
docker run --name new_postgresql_13 -e POSTGRES_PASSWORD=your_password -d postgres:13
```
4. **导入数据**: 利用`psql`工具,在新容器中运行导入命令,导入备份文件。
```bash
docker exec -it new_postgresql_13 psql -U your_username -d template1 -f backup.sql
```
5. **验证迁移**: 连接到新容器中的PostgreSQL 13数据库,检查数据是否已成功迁移。
6. **更新应用**: 如果有依赖于原PostgreSQL 9数据库的应用程序,需要更新它们的连接字符串,指向新的PostgreSQL 13容器。
7. **清理旧资源**: 最后,可以删除不再需要的PostgreSQL 9容器及其数据卷。
阅读全文