MastodonのDBリストアをやってみた

この記事は mimikun Advent Calendar 6日目 の記事です.

自分はDocker構築でMastodonをやっているので, DockerコンテナでDBリストアやったほうがいいんじゃないかな. と思ったのでやってみました

(ちょうどやってみる機会も生まれたことだし)

用意するもの

手順

  1. $ docker pull postgres9.6-alpine
  2. vim docker-start.sh docker-start.sh #!/bin/bash docker run -d --name psql96 -e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres:9.6-alpine
  3. $ scp [ホスト名]:path_to_db_backup_file .

その後,

  1. docker exec -it psql9.6 /bin/bash
  2. 別タブを開いて, $ docker cp mastodon_db_backup.dump [コンテナID]:/var/lib/postgres/

する

postgresコンテナ内での作業

  1. $ su - postgres
  2. $ psql
  3. このように入力 sql> CREATE USER postgres CREATEDB; sql> CREATE DATABASE postgres WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'en_US.utf8' LC_CTYPE = 'en_US.utf8'; sql> ALTER DATABASE postgres OWNER TO postgres; sql> \q
  4. restoreする $ pg_restore -U postgres -C -d postgres mastodon_docker.dump --schema=public

なにもエラー表示されなかったら多分問題なくrestoreできています