慎重に行う:テスト時のデータベースバックアップとリストア手順

I’m about to test a process of importing a boatload of content, but want to make sure I can revert properly in case things go sideways on me.

I run an external PostgreSQL instance, so my thought is that I don’t really need to backup the Discourse Rails instance in Docker, but simply the database via the following steps:

BACKUP:

  1. ./launcher stop app
  2. pg_dump -U username -p 12345 -W -F p databasename | xz > ~/backup/database/$(date +"%d-%m-%Y_%H.%M.%S").databasename.pgsql.xz
  3. ./launcher start app
  4. ### IMPORT CONTENT ###

If things went badly, RESTORE:

  1. ./launcher stop app
  2. xzcat ~/backup/database/DATE.databasename.pgsql.xz | psql -U username -p 12345 -W databasename
  3. ./launcher start app

And things should be back to sane and functional… correct?

Probably, there is a built in easy to restore that’s tested, supported, and requires just a couple of clicks or a single command line.

If your way doesn’t work you’re on your own.

「いいね!」 1

As I noted, this is for an external PGSQL database since I’m not using the Dockerized one and sadly the normal backup/restore method just doesn’t work for me (probably because I’m running a little bit newer version of PGSQL on the big DB server).

Oh. Yeah. If you’re running pg11 then you’re on your own. If you’re running pg10 on an external db it should be fine.

But test it and see if it works.

「いいね!」 1

PG11 and PG12 will be supported quite soon in the backup & restore process. Stay tuned.

「いいね!」 4

こんにちは。現在サポートされていますか?

はい、そうです!アップグレードは数ヶ月前に行われました。

「いいね!」 2

ありがとうございます!確認させてください。Discourse サイト(コンテンツ付き)にバックアップを復元すると、外部の PostgreSQL インスタンス(RDS)からすべてのデータが完全に削除されますか?また、復元が失敗したり、接続が切れたりした場合、RDS のデータが破損する可能性はありますか?

Discourseデータベースからすべてのデータを削除しますが、他のデータは削除されません。復元が失敗した場合、既存のデータは保持されます。

「いいね!」 2