DockerのPostgreSQLコンテナのリストア


press
DockerのPostgreSQLコンテナのリストア

Dockerで動いているPostgreSQLにデータをリストアする方法です。書き出したPostgreSQLのdumpファイル(リストア用データ)はデスクトップに置いてあるという前提で進めます。

ディレクトリ構造

.
├── Django-PostgreSQL-on-Docker-master
└── postgres-dump.sql

Dockerの起動

$ docker-compose up

以下のコマンドでPostgreSQLに入り現在の状況を確認します。

$ docker exec -it django-postgresql-on-docker-master_database_1 psql -U postgres

django-postgresql-on-docker-master_database_1の部分はdocker psで表示されるNAMESの部分を入力します。

CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                    NAMES
381e439c8efa        django-postgresql-on-docker-master_website   "python manage.py ru…"   8 minutes ago       Up 8 minutes        0.0.0.0:8000->8000/tcp   django-postgresql-on-docker-master_website_1
31f4140952f1        postgres                                     "docker-entrypoint.s…"   8 minutes ago       Up 8 minutes        5432/tcp                 django-postgresql-on-docker-master_database_1

テーブルを一覧表示して確認します。(まだデータが無いのでDid not find any relations.が表示されます)

postgres=# \d
Did not find any relations.

PostgreSQLのリストア

DesktopにあるdumpファイルをDockerのPostgreSQLへリストアします。

$ cat ~/Desktop/postgres-dump.sql | docker exec -i django-postgresql-on-docker-master_database_1 psql -U postgres

リストアされているか確認します。

$ docker exec -it django-postgresql-on-docker-master_database_1 psql -U postgres
postgres=# \d

今回はDjangoのデータをリストアしたので、以下の様なデータが表示されていればリストア成功です。

                        List of relations
 Schema |               Name                |   Type   |  Owner
--------+-----------------------------------+----------+----------
 public | auth_group                        | table    | postgres
 public | auth_group_id_seq                 | sequence | postgres
 public | auth_group_permissions            | table    | postgres
 public | auth_group_permissions_id_seq     | sequence | postgres
 public | auth_permission                   | table    | postgres
 public | auth_permission_id_seq            | sequence | postgres
 public | auth_user                         | table    | postgres
 public | auth_user_groups                  | table    | postgres
 public | auth_user_groups_id_seq           | sequence | postgres
 public | auth_user_id_seq                  | sequence | postgres
 public | auth_user_user_permissions        | table    | postgres
 public | auth_user_user_permissions_id_seq | sequence | postgres
 public | django_admin_log                  | table    | postgres
 public | django_admin_log_id_seq           | sequence | postgres
 public | django_content_type               | table    | postgres
 public | django_content_type_id_seq        | sequence | postgres
 public | django_migrations                 | table    | postgres
 public | django_migrations_id_seq          | sequence | postgres
 public | django_session                    | table    | postgres

当ブログは群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。

株式会社ファントムへのお問い合わせ




Show Comments (0)

Comments

Related Articles

Django

DjangoとChannelsで簡単なチャットサーバーを構築(1)

こちらのチュートリアルと同じ内容です。https://channels.readthedocs.io/en/latest/tutorial/index.html 環境 Python 3.7.0Django 2.2.2ch […]

Posted on by press
Django

DjangoとChannelsで簡単なチャットサーバーを構築(2)

前回からの続きです。 ルームビューを作成 chat > templates > chat > room.htmlを作成します。 ルームビューを表示するためのviewを作成します。 ルームビューへのurl […]

Posted on by press