网站Logo 这个是韦某人的博客

MoviePilot使用PostgreSQL以及Redis的过程

awei
10
2025-08-21

我用的是平台是unraid,所以可能有部分操作与在座的不一定,但是道理还是想通的,闲话少说;直接开始

我安装的PostgreSQL17下面这个是docker run的配置

docker run -d \
  --name postgresql \
  -p 5432:5432 \
  -e POSTGRES_DB=PostgreSQL17 \  #这个是默认数据库必须有
  -e POSTGRES_USER=root \ #账号
  -e POSTGRES_PASSWORD='T2Y!48X*hn#9lJ' \ #密码
  -v /mnt/user/appdata/postgresql:/var/lib/postgresql/data \ 数据库地址
  postgres

docker跑起来后进入这个容器,给mp建一个库

#进入容器后
psql -U root -d PostgreSQL17
#老生常用的新建库的指令
CREATE DATABASE mp;
#这个是列出所有的库
\l

正常建完之后

哎!还没完,我们还需要新建一个账号给mp

#因为我这个库还有别的容器使用,为了保险起见在建库时会与作者的wiki授权方向有区别。如果这个docker单纯为了mp用那可以用wiki里的,我这里只授权一个库。

#这里是建了一个mp_owner的账号他的密码是Mp#2025!Secure
CREATE ROLE mp_owner WITH LOGIN PASSWORD 'Mp#2025!Secure';

#这个是授权
ALTER DATABASE mp OWNER TO mp_owner;


#################################
#这里也列出wiki里的授权命令
GRANT ALL PRIVILEGES ON SCHEMA public TO moviepilot;
GRANT ALL PRIVILEGES ON DATABASE moviepilot TO moviepilot;
ALTER USER moviepilot CREATEDB;
#################################

正常就是这样


好,现在需要验证这个账号能不能正常登录

psql -U mp_owner -d mp

看到这个就可以了

既然能优化...那就优化到底,接下来是redis

这个是redis的docker run

# 启动带持久化的Redis
docker run \
  --name my-redis \
  -p 6379:6379 \   #端口
  -v /mnt/cache/appdata/redis/data:/data \  #数据放哪
  -d redis redis-server --save 600 1 --requirepass "T2Y!48X*hn#9lJ"  #这是密码

关于unraid是在这里表示后面的配置

检查下容器日志,看到这个就启动成功了


到这了还差最后一步就是,数据迁移!

#先把MoviePilot停下来
docker stop MoviePilot #这里的容器名自己改
#我这使用原地备份,大伙不要学
cp /mnt/user/appdata/moviepilot-v2/user.db ./user_backup.db

把项目根目录的这个文件复制进行备份

之后再复制一份到psql的数据目录中,我这里就是

cp /mnt/user/appdata/moviepilot-v2/user.db /mnt/user/appdata/postgresql17

cd /var/lib/postgresql/data

最后进入psql的终端能看到这个数据库就行

接下来就是需要在psql的终端内安装个东西来进行迁移操作了

apt update
apt install pgloader -y
#执行迁移
#pgloader sqlite:////var/lib/postgresql/data/user.db postgresql://<数据库账号>:<数据库密码>@localhost:5432/<数据库名>
#那么我自己就是
pgloader sqlite:////var/lib/postgresql/data/user.db postgresql://mp_owner:'T2Y!48X*hn#9lJ'@localhost:5432/mp

能看到这些就代表成功了

好接下来就是把这些东西接入到MP中!就只是填几个变量

这个是psql的变量

# 数据库类型
DB_TYPE=postgresql

# PostgreSQL连接参数
DB_POSTGRESQL_HOST=<ip地址>
DB_POSTGRESQL_PORT=5432
DB_POSTGRESQL_DATABASE=<数据库名>
DB_POSTGRESQL_USERNAME=<数据库账号>
DB_POSTGRESQL_PASSWORD=<数据库密码>

这个是redis的变量

CACHE_BACKEND_TYPE=redis
# 缓存连接字符串,仅Redis缓存需要
CACHE_BACKEND_URL=redis://:你的密码@localhost:6379

动物装饰