我用的是平台是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