6

如何给 hedgedoc 实例搬家?

 2 years ago
source link: https://blog.251.sh/upgrade-hedgedoc-instance-database
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何给 hedgedoc 实例搬家?

May 4, 2022

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

因为是 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 启动实例吧!


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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK