0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】マイグレーションとER図の双方向同期でドキュメント管理を自動化

Posted at

はじめに

IT開発に従事している方は、ご存知かもしれませんが、大半のプロジェクトで開発仕様書が形骸化あるいは存在しないことがよく発生します。

仕様書の1つとしてER図が存在しますが、こちらは初期に作成されていても更新されず、実際のDB構造と乖離していることがほとんどです。結果として、現状のマイグレーションファイルしか信頼に足らず、マイグレーションや実際のテーブルを1つずつ読み解いてDB構造を理解する必要があります。

確かに「コードを更新したらER図も同期して更新する」べきです。
しかし、緊急性が低いタスクは後回しになりがちで、気づけば実態と完全に乖離したER図だけが残る...
そんな開発現場も多いのではないでしょうか?

そこで、LaravelのマイグレーションとER図(PlantUML)の双方向同期を可能にする機能をLACに追加しました。

LACの詳細やインストール手順については前回の記事をご覧下さい。
https://qiita.com/ChikauKume/items/fe29f6a9039632e91432

これにより、常に最新ソースコード基準でERを1コマンドで作成できますので、管理工数をなくした上で資料管理・作成が可能となります。もちろん開発仕様書の中には、画面遷移や基本設計書など様々なものが存在しますが、一旦ER図があればシステムとして一番重要なデータの流れの把握に役立つと思い、今回機能を作成いたしました。

実際の使い方

# ER図 → マイグレーションの場合
1. puml形式でファイルを作成し、storage/app/db/diagramsに配置
2. 下記コマンドを実行
php artisan lac:gen-migration
3. database/migrations 配下にマイグレーションファイルが生成される


# マイグレーション → ER図の場合
1. マイグレーションファイルを作成
2. 下記コマンドを実行
php artisan lac:gen-diagram
3. storage/app/db/diagrams/generated 配下に.pumlファイルが生成

実際の挙動についてご確認したい方は下記から閲覧可能です。
https://github.com/ChikauKume/laravel-arsenal-core/blob/main/README.ja.md

おわりに

前回のScaffold機能などと併用することで開発効率をかなり上げることができますので、是非使ってみて下さい。

📝 フィードバック・要望
ご要望や改善案につきましては、下記GitHubのIssuesからお気軽にお寄せください。
👉 https://github.com/ChikauKume/laravel-arsenal-core/issues

この記事が役に立った方は、ぜひいいね!やコメント、シェアをお願いします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?