Schemaspy を使って WordPress のデータベースの構造をのぞいてみた

参考(docker-compose.yml)

https://iikanji.hatenablog.jp/entry/2020/10/14/001235

https://docs.docker.jp/compose/wordpress.html

docker-compose.yml

version: '3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    expose:
      - 3306
    ports: 
      - 127.0.0.1:3306:3306
    logging:
      options:
        max-size: "10k"
        max-file: "5"
  schemaspy:
    image: schemaspy/schemaspy
    depends_on:
      - db
    container_name: schemaspy
    volumes:
      - ./docker/schemaspy/output:/output
      - ./docker/schemaspy/config:/config
    command: [ "-configFile", "/config/schemaspy.properties" ]

  schemaspy-server:
    image: nginx
    depends_on:
      - schemaspy
    container_name: "nginx_for_schemaspy"
    ports:
      - "8888:80"
    volumes:
      - ./docker/schemaspy/output:/usr/share/nginx/html:ro
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
       - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress

volumes:
  db_data:
    driver: local

schemaspy.properties

schemaspy.t=mysql
schemaspy.host=127.0.0.1
schemaspy.port=3306
schemaspy.db=wordpress
schemaspy.u=wordpress
schemaspy.p=wordpress
schemaspy.s=wordpress
  • t はデータベースのタイプ(mysql,postgresql など)
  • host はホスト(データベースのエンドポイント)
  • port はポート
  • db は show database とか \l ででてくる データベース
  • u は ユーザー名
  • p は パスワード
  • s はスキーマ( mysql では スキーマ=データベースらしい)。本当かわからないが db と同じ値をいれておく

起動方法

  • ファイル名が docker-compose.yml の場合(とりあえずビルド入れてます)
docker-compose up -d --build
  • ファイル名が docker-compose.yml 以外の場合(今回は docker-compose.wordpress.yml )
docker-compose -f docker-compose.wordpress.yml up -d
  • コンテナを落とすときも -f をつける
docker-compose -f docker-compose.wordpress.yml down

 

schemaspy のコンテナについて

  • db の ports で localhost の ip アドレスを書く理由は以下のエラーがでるため
org.schemaspy.input.dbms.exceptions.ConnectionFailure: Failed to connect to database URL [jdbc:mysql://127.0.0.1:3306/wordpress] Communications link failure
  • schemaspy を docker-compose.yml で作っているのは schemaspy-server のアクセスが以下のコマンドだとできなかったため
docker run -v "$PWD/html:/output" -v "$PWD/docker/schemaspy/config/schemaspy.properties:/schemaspy.properties" schemaspy/schemaspy:latest -debug

実際に見てみる

  1. 以下のURL をブラウザに入力または docker/schemaspy/output/index.html をファイルエクスプローラーから開く
    http://localhost:8888
  2. 実際の画像
  3.  デフォルトだとテーブル 12 個しかないらしい
    プラグインによってはテーブル増やすかもしれない

結論

  • schemaspy は便利
  • android studio でも使える方法募集

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA