CodeIgniterの環境構築方法:schemaspyの導入

スポンサーリンク
CodeIgniterの環境構築方法:schemaspyの導入 ノウハウ
CodeIgniterの環境構築方法:schemaspyの導入
この記事は約6分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、docker で環境構築した CodeIgniter に schemaspy を追加する方法についてご紹介します。

スポンサーリンク

前提条件

この記事では、Dockerでの環境構築が完了していることを前提にしています。環境構築の方法については、下記の記事を参考にお願いします。

修正内容

ディレクトリ構成

下記のファイルを新規作成&修正します。

app
├── docker-compose.yml (修正)
├── schemaspy (新規)
│   ├── Dockerfile
│   ├── local.properties
│   └── output

docker-compose.yml

15 – 27 行目に下記の内容を追加します。

x-schemaspy-cmd: &schemaspy-cmd
  build: ./schemaspy
  volumes:
    - ./schemaspy/local.properties:/schemaspy.properties
    - ./schemaspy/output:/output
  environment:
    SCHEMASPY_OUTPUT: /output
  depends_on:
    - mysql
  profiles:
    - schemaspy
  networks:
    - net

93 – 94 行目に下記の内容を追加します。

  schemaspy-cmd:
    <<: *schemaspy-cmd

schemaspy/Dockerfile

下記の内容で新規作成します。

FROM schemaspy/schemaspy

schemaspy/local.properties

下記の内容で新規作成します。

# type of database. Run with -dbhelp for details
# if mssql doesn't work: try mssql08 in combination with sqljdbc_7.2, this combination has been tested
schemaspy.t=mysql
# optional path to alternative jdbc drivers.
schemaspy.dp=/drivers
# database properties: host, port number, name user, password
schemaspy.host=mysql
schemaspy.port=3306
schemaspy.db=sample
schemaspy.u=root
schemaspy.p=P@ssw0rd
# output dir to save generated files
schemaspy.o=output
# db scheme for which generate diagrams
schemaspy.s=sample

ビルド&起動

下記の手順でビルドして、起動させます。起動後に、テスト用のテーブルとデータを登録しています。

docker compose build

docker compose up -d

docker compose run --rm flyway-cmd info

docker compose run --rm flyway-cmd baseline

docker compose run --rm flyway-cmd migrate

 schemaspyでDB関係のドキュメント作成

下記の手順でDB関連のドキュメントを作成します。

docker compose run --rm schemaspy-cmd

下記のパスにファイルが作成されていれば成功です。ブラウザで該当ファイルを開くと、DB関連の情報がみれます。

schemaspy/output/index.html

output配下のファイルをwebサーバに配置して、ネットワーク経由で参照できるようにするとチーム間での共有がスムーズにいくかも知れません。devやstag、prodなど環境に合わせて作成してあげるとよさそうです。ただ、ネットワーク越しに参照できるので、セキュリティには気をつけて構築する必要があります。

解説

schemaspyとは

SchemaSpyは、データベースのスキーマを解析するためのJavaツールで、以下のような機能があります。

  1. スキーマの可視化

SchemaSpyは、データベースのスキーマを解析し、HTMLやPDFなどのドキュメントを生成します。これにより、スキーマを可視化することができ、データベースの構造や関係を理解するのに役立ちます。生成されたドキュメントには、データベースの依存関係、テーブル、列、インデックス、ビュー、ストアドプロシージャなどのオブジェクトが含まれます。

  1. 多様なデータベースのサポート

SchemaSpyは、多様なデータベースをサポートしています。以下のようなデータベースが対象となっています。

  • Oracle
  • MySQL
  • PostgreSQL
  • Microsoft SQL Server
  • SQLite
  • Sybase
  • DB2
  • Informix
  • Firebird
  • HSQLDB
  • H2
  • Derby
  1. カスタマイズ可能な出力

SchemaSpyは、生成されるドキュメントの出力をカスタマイズすることができます。たとえば、出力形式をHTMLからPDFに変更したり、テンプレートをカスタマイズしたりすることができます。

  1. コマンドラインからの実行

SchemaSpyは、コマンドラインから実行することができます。これにより、自動化されたタスクやバッチ処理に適したツールとなっています。

以上がSchemaSpyの主な機能です。データベースのスキーマを解析する際には、SchemaSpyを活用することで、データベースの設計やメンテナンスを効率化することができます。

おわりに

今日は、docker で環境構築した CodeIgniter に schemaspyを追加する方法についてご紹介しました。これで、DBの可視化が可能になりましたので、DBの構造がどうなっているのかを確認しやすくなったと思います。

dockerのイメージが大きくなっているので、どこかで小さくしたいと思います。

なお、ここに記載のDocker関連のファイルは、下記のGitHubにあります。

よっしー
よっしー

また明日お会いしましょう!

コメント

タイトルとURLをコピーしました