如何给 hedgedoc 实例搬家?

更多的目的是给自己备份一下过程,下次搬家就简单了。

因为是 CodiMD 来的,所以之前已经有一篇 CodiMD 备份数据库的了,这篇主要是讲数据库。

我的数据库是 PostgreSQL 11,而现在是 PostgreSQL 13。

第一步,docker-compose down 来停止实例。

第二步,使用 postgres:11 然后用 docker-compose up -d database 单独启动数据库。

第三步,用 docker-compose exec database bash -c 'pg_dump --clean --no-owner --no-acl "$POSTGRES_DB" -U "$POSTGRES_USER"' > ./backup-$(date +%Y-%m-%d).sql dump 数据库。注意不要使用这个命令来当作日常备份,因为它会忽略权限。

第四步,用 less ./backup-$(date +%Y-%m-%d).sql 看看是否成功了。

第五步,用 docker-compose ps | grep 'database' | awk '{print $1}' 查找容器名字。

第六步,用 docker inspect $(docker-compose ps | grep 'database' | awk '{print $1}') | jq -r '.[].Mounts[].Name' 查找容器用的卷名。

第七步,docker-compose down 再次停止实例。

第八步,用 docker volume rm <卷名> 移除你从第六步获取到的卷。

第九步,将 postgres:11 修改成 postgres:13-alpine

第十步,新生成一个数据库容器 docker-compose up -d database

第十一步,用 cat ./backup-$(date +%Y-%m-%d).sql | docker-compose exec -T database bash -c 'psql -U "$POSTGRES_USER" "$POSTGRES_DB"' 导入备份。

最后一步,docker-compose up -d 启动实例吧!

参考来源


如果喜欢本文,欢迎点击下方的「鼓掌」按钮!

如果上面没有加载出任何东西,可以点击这里