ホーム > Database > PostgreSQL

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 {カラム名} {データタイプ}

Database

リンク

コーポレートサイトにちょうどいいCMS、baserCMS