Skip to content

Instantly share code, notes, and snippets.

@1206yaya
Last active February 7, 2025 03:05
Show Gist options
  • Save 1206yaya/104453d4440303477ed474499aac1c25 to your computer and use it in GitHub Desktop.
Save 1206yaya/104453d4440303477ed474499aac1c25 to your computer and use it in GitHub Desktop.
PostgreSQL Cheat Sheet #cheat-sheet

PostgreSQL Cheat Sheet

基本情報

  • PostgreSQL はオープンソースのリレーショナルデータベース。
  • SQL に準拠し、高度な機能を備えている。

Docker で PostgreSQL を使う

1. コンテナの起動

docker run --name my_postgres \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=password \
  -e POSTGRES_DB=mydb \
  -c log_statement=all \
  -d postgres

2. コンテナのログを確認

docker logs -f my_postgres

3. コンテナに接続して psql を開く

docker exec -it my_postgres psql -U root -d db_name

SQL クエリのログを有効にする

1. SQL ログを有効化

ALTER SYSTEM SET log_statement = 'all';
SELECT pg_reload_conf();

2. 設定の確認

SHOW log_statement;

3. docker logs でログが見えない場合の確認

SHOW log_destination;
SHOW logging_collector;
  • log_destination='stderr' なら docker logs で確認可能。
  • logging_collector=on の場合、ログはファイルに出力される。

4. logging_collector を無効化(docker logs で確認できるようにする)

ALTER SYSTEM SET logging_collector = 'off';
SELECT pg_reload_conf();

5. ログファイルを確認(logging_collector=on の場合)

docker exec -it my_postgres bash
ls -l /var/lib/postgresql/data/log/
cat /var/lib/postgresql/data/log/postgresql.log

docker-compose を使う場合

version: '3.8'
services:
  postgres:
    image: postgres:latest
    container_name: my_postgres
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    command: ["postgres", "-c", "log_statement=all", "-c", "logging_collector=on", "-c", "log_destination=stderr"]
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment