将数据从内嵌PostgreSQL迁移到外部PostgreSQL
在迁移之前,需要先备份当前数据库中的所有数据。备份文件将保存到:
/app/config/backups/migrate.zip
详细安装教程: https://github.com/qicfan/qmediasync/wiki/Docker安装
如果不明白怎么操作,加QQ群:1057459156 或者Telegram: https://t.me/q115_strm
修改qms的docker-compose.yml(compose含postgres容器):
services:
# 数据库服务
postgres:
image: postgres:17 # 使用官方 Postgres 镜像
container_name: postgres # 指定容器名称
environment:
POSTGRES_USER: postgres # 数据库用户名
POSTGRES_PASSWORD: "123123" # 数据库密码
POSTGRES_DB: postgres # 默认创建的数据库名
ports:
- "15432:5432" # 将端口映射到宿主机,便于外部连接,这里映射的是15432端口,如果其他服务要用不要写错
volumes:
- ./postgres/data:/var/lib/postgresql/data # 数据持久化
networks:
qms:
ipv4_address: 172.25.0.3
qmediasync:
image: qicfan/qmediasync:latest
container_name: qmediasync
restart: always
depends_on:
- postgres # 确保 postgres 服务先启动
ports:
- "12333:12333" # Web后台管理端口
- "8095:8095" # Emby代理端口,302需要访问该端口
#- "12332:12332" # https Web后台管理端口的
#- "8094:8094" # https Emby代理端口
volumes:
- ./config:/app/config # 必须有,运行日志和数据
- /vol1/1000/网盘:/media # 用来存放strm和元数据的目录,必须有,前后路径都可以自定义
networks:
qms:
ipv4_address: 172.25.0.2
networks:
qms:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/16
单独安装postgres容器:
services:
# 数据库服务
postgres:
image: postgres:17 # 使用官方 Postgres 镜像
container_name: postgres # 指定容器名称
environment:
POSTGRES_USER: postgres # 数据库用户名
POSTGRES_PASSWORD: "123123" # 数据库密码
POSTGRES_DB: postgres # 默认创建的数据库名
ports:
- "15432:5432" # 将端口映射到宿主机,便于外部连接,这里映射的是15432端口,如果其他服务要用不要写错
volumes:
- ./postgres/data:/var/lib/postgresql/data # 数据持久化
networks:
qms:
ipv4_address: 172.25.0.3
networks:
qms:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/16
请输入外部PostgreSQL数据库的连接信息。一定要输入超级管理员用户名和密码,程序会自动创建指定的数据库。
如果使用第一种包含postgres和qmediasync的compose构建则输入 postgres;
如果使用单独安装postgres的compose则输入 172.25.0.1
如果主机地址是 postgres,端口为 5432;
如果主机地址是 172.25.0.1,端口为 15432
请重新启动程序。重启后,程序将自动检测到备份文件并恢复数据到新的数据库。(注意:恢复过程根据数据量可能持续1-60分钟,期间无法打开网页)