概要
表題の通り、Docker
・Docker-compose
で構築したpgadmin
のインポート(import
)/エクスポート(export
)の実施方法を記載します。
構築環境
以下に、今回使用した環境を示す。
ディレクトリー構造
.
├── db/
│ ├── conf/
│ │ └── .env
│ └── db_volume # ← コンテナー立ち上げ時に自動で生成
├── pgadmin/
│ ├── conf/
│ │ └── .env
│ └── pgadmin_volume # ← コンテナー立ち上げ時に自動で生成
└── compose.yml
compose.yml
compose.yml
version: "3.9"
services:
db:
image: postgres
restart: always
ports:
- "5432:5432"
volumes:
- ./db/db_volume:/var/lib/postgresql/data
env_file:
- ./db/conf/.env
pgadmin:
image: dpage/pgadmin4
restart: always
volumes:
- ./pgadmin/pgadmin_volume:/var/lib/pgadmin # ← 重要
env_file:
- ./pgadmin/conf/.env
ports:
- 8080:80
depends_on:
- db
volumes:
db_volume: {}
pgadmin_volume: {}
.gitignore
ファイル
.gitignore
db/db_volume
pgadmin/pgadmin_volume
env
ファイル
db
ディレクトリー内に設置したconf
ファイル
.env
POSTGRES_DB=test_db
POSTGRES_USER=example
POSTGRES_PASSWORD=password
pgadmin
ディレクトリー内に設置したconf
ファイル
.env
PGADMIN_DEFAULT_EMAIL=test@example.com
PGADMIN_DEFAULT_PASSWORD=hogehoge
ファイルの設置または抽出されるディレクトリー
- エクスポートの場合は、下記のディレクトリ内に作成される
- インポートの場合は、下記のディレクトリ内にインポートしたいファイルを設置する
.
# 省略
├── pgadmin/
│ ├── conf
│ └── pgadmin_volume/
│ └── storage/
│ └── PGADMIN_DEFAULT_EMAILで設定した値 # ← このディレクトリー内にエクスポートファイルが生成される
# 省略
補足
pgadmin
のimport
では、CSV
ファイルからデータをimport
をする事ができますが、上手く取り込めない事があります。その場合は、下記のサイトでCSV
の中身をinsert
文に変換してから取り込むと上手くいくと思います。
筆者が作成したディレクトリー