PostgreSQL
■■ DockerでPostgreSQLとAdminerを動かす。
- docker-compose.yml
# 使用するdocker-compose仕様
version: '3'
services:
adminer:
image: adminer:latest
restart: always
container_name: adminer
# ポート指定 HOST:CONTAINER
ports:
- 8180:8080
# 依存するサービス(先に起動される)
depends_on:
- db
db:
image: postgres:latest
restart: always
container_name: postgresql
ports:
- 5432:5432
# 名前付きVolumeをコンテナにマウント
volumes:
- "db-data:/var/lib/postgresql/data"
environment:
POSTGRES_PASSWORD: example
POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
# 名前付きVolume
volumes:
db-data:
driver: local
- 上記docker-compose.ymlファイルが存在するディレクトリで
> docker-compose up -dを実行。
■■■ adminerからの接続
- localhost:8180へアクセス
- ホスト名には「db」を指定してログイン。
■■ PostgreSQLの構造
データベースクラスタ
└ データベース
└ スキーマ
└ テーブル
■■ 初期状態
| 項目 | 値 |
|---|---|
| スーパーユーザ | postgres |
| パスワード | docker-compose.ymlのPOSTGRES_PASSWORDで指定したパスワード |
| データベース | postgres |
| スキーマ | public |
■■ psql
-
起動
> psql [option...] [dbname [username]] -
終了
postgres=# \q
■■■■ 一覧
-
データベース一覧
postgres=# \l -
スキーマ一覧
postgres=# \dn -
ロール(user)一覧
postgres=# \du -
テーブル一覧
postgres=# \d -
カラム一覧
postgres=# \d テーブル名
■■■■ 作成
-
データベース作成
CREATE DATABASE {name} -
ロール作成
CREATE ROLE {name} [ WITH ] LOGIN PASSWORD '{password}'
■■■■ 変更
-
カラム追加
ALTER TABLE {テーブル名} ADD COLUMN {カラム名} {データタイプ}

