如何给 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
启动实例吧!
参考来源
如果喜欢本文,欢迎点击下方的「鼓掌」按钮!
如果上面没有加载出任何东西,可以点击这里。