◇LaravelDB.com知ってます?
Laravelのデータベース設計(ER図)するだけで、MigrationファイルやCRUDのソースコードがポンって作成できる無料の「 超爆速プロトタイプ作成 」 ツールです。
※Migrationの基礎知識やテーブル名に"s"を付けるなどLaravelのルールを知ってることが前提条件
さくっとどんなものか知りたい人用DEMO動画
LaravelDB.comを1年半運営してみての反省
2020-09-22以降からは「Migration」を軸にアップデートしていきます
※CRUD機能のアップデートはどうなるか未定(Laravel7までは動作確認ずみ)
メイン機能
- Migration&CRUDコード(ベータ版) の自動生成
- CRUDコード(ベータ版) でのValidation自動生成(テーブル設計に合わせて自動で生成)
- チームメンバーとの共有可能
- リレーション(JOIN)自動生成
◇そしてサービスリリースから6ヶ月
世界で800名(2020年8月末現在で900名)の登録者がありました。
これが多いか少ないかは私にはわかりませんが、よく使っていただいてるコアユーザーはいるようです。ありがとうございますm(_ _)m
日本からのアクセスも多く上位3位は、
- 東京
- 大阪
- 神奈川
- 福岡
- 名古屋
国、海外からのアクセスが多い順
- 日本
- アメリカ
- インド
- イギリス
- ベトナム
の順です。
※ここらへんは時期によって変動があります(一時期トルコが多かったですね。)。
要望は少しもらってます
enum対応しました
enumの対応や、いくつか要望はいただいてます。
enumなどはCRUDコード生成時のValidationの部分が少し難しいな~と感じてるのですが、
Migration書き出し機能だけに限定すればValidation問題は無いので、Migrationにenumはスグ付けれるなとか。細かい部分でいろいろあります。
超爆速プロトタイプツールと銘打ってるので、細かい仕様は徐々に対応でしょうか、お許しください。
※実際は本業が今コロナの影響もあり、作業(本業が先生なので資料作成とか動画とか)量が増えてるので、中々着手できないってのもあります。
用途
開発者によってバラバラなようです。
・Migrationの書き出し
・CRUD全部
・コード生成後、一部をコピーして使う
・テーブル設計の共有
なんで作ったの?
ページ下部に「◇Laravel専用ツールなんで作ったの?」があるので読んでいただければ幸いです。
*運営費はどうしてるの?
paypay/Paypalの寄付が100%です(サイトトップページフッターに設置してあります。)
※LaravelDB.comを使ってみた一般の有志の方々からの寄付が偶に入ってくるので、それで運営しております。
これは本当に助かっておりますm(_ _)m。
※PayPayのQRは2週間過ぎると変わるようで、その度にQRコードの差し替えが面倒で困ってます。
◇操作(最新動画!!)
YouTubeで操作方法を見る
https://youtu.be/sHt5v4XOWbc
操作説明(Youtube)
https://youtu.be/sHt5v4XOWbc
※ブラウザ画面は海外の言語設定だと「英語表記」されるようになっています。
◇アップデート「 UNIQUE, INDEX, ENUM, UNSIGNED ] 対応(2020-09-22以降)
2020-09-22以降に作成した、新規プロジェクトより表示されるようになります
以下はENUM、Doubleの入力してる例です。
◇リレーション自動生成(2020-07-10以降は新画面)
今まで、外部キー制約の機能のみ実装されていましたが 2020年03月04日から「 リレーション(JOIN) 」が生成できるようになりました。
まずは、ER図を簡単に作ってみましょう!!
その後、右メニュー「 [Data]セーブ/ロード 」クリックすると以下画面が表示されます。
BUILD [CRUD CODE] をクリック!!CRUD ファイル一式が生成されます!!
【ポイント】
Relation(Beta)にチェックを入れておくとリレーションします。
BUILD [MIGRATION] でもリレーション(QueryBuilder)がコメントで生成されますよ。
【リレーションのポイント】
- JOINしてるテーブルの全ての項目を最初は表示します(同項目名が存在する場合、片方のみ表示します)。
- CRUDのコードが生成されたら、仕様に合わせてHTMLテーブルの項目を削除してください。
- 中間テーブルなどに有効です。
- リレーションは上記画像のように「チェック」を入れないと生成されません。
- Controller内にコードが生成されてますので、確認しておくと良いでしょう!
プロトタイプ(ベースになるコードを生成してくれる)には十分すぎる機能ですね。
※外部キーは非推奨としています(理由:Migrationの実行順序が重要でエラーになりやすい為)
◇Validationがスゴイ! → テーブル設計に合わせて生成
Validationって地味に面倒ですよね、これかなり助かります!!
※ENUMは必須・未入力のみ出力。
※intは型・必須・未入力のみ出力。
例でざっくりテーブルをER図で書いてみました。
以下"t_gsusers"テーブルを中心に見ていきます。
生成されたコントローラーのcreate(),edit()にはこういったvalidationが挿入されます。
$this->validate($request, [
"name" => "required|max:128", //string('name',128)
"lid" => "required|max:128", //string('lid',128)
"lpw" => "required|max:128", //string('lpw',128)
"m_department_id" => "required|integer", //integer('m_department_id')
"m_position_id" => "required|integer", //integer('m_position_id')
"m_prefectures_id" => "required|integer", //integer('m_prefectures_id')
"m_kanri_id" => "required|integer", //integer('m_kanri_id')
"m_lifeflg_id" => "required|integer", //integer('m_lifeflg_id')
"m_test_id" => "required|integer", //integer('m_test_id')
]);
{{old('name')}} → 入力項目を補完
validationで未入力等ではじかれた場合、入力した文字を消さずに表示します。
◇チーム共有機能(他のメンバーとER図を共有)
この機能を使えば「オンライン上でテーブルの設計が共有でき」CRUDが簡単に生成できることでしょう。
【シェアData「送信側」】
1 [シェアData]作成
見せたい相手にIDを渡しておいて、変更があれば「Create a [Share ID]」ボタンを押すと毎度データ更新されることを知っておきましょう!
2 [シェアData] IDをコピー
【シェアData 「受信側」】
1 [シェアData]読み込み
2.「Read」ボタンをクリックしてデータを受信表示しましょう。
3.シェアデータの複製が完了!!
受信側にデータが入りました!受信側もそのデータを活用できるようになります。
チーム・メンタリング等のケースでも利用可能です。
※受信後は「別名を付けて保存しておくと良いでしょう!」
◇Laravel専用ツールなんで作ったの?
そう、お察しの通り、制作者は私1人です(^^)
そもそも、学校で教えていて、テーブル設計している学生がその時いて
「テーブル設計して、そこからMigrationファイル作成して、コードをイチから書いて・・・」普通の作業ではあるんですが、何故か「その時は疑問を感じたんですね」、ER図書いたらMigrationファイル生成したら便利だよね~。何割かの開発者は喜んでくれるのでは?と思ったのがキッカケでした。
個人の「研究開発」アプリケーションなので、商用のようなキレイな画面ではありませんが、用途にあった使い方が分かればとても便利になるはずです。
特に「テーブル設計は保存可能」なので、前回作ったテーブル設計から新しい設計を複製できるのは嬉しい機能です。設計してMigration or CRUDコード書き出してができるので、「設計して→コード書いて」という往復作業が無くなるので、是非使ってほしいと思います。
※応援メッセージも受け付けております(^^) もっと頑張れるかも!!
Youtubeチャンネル
「遅咲きエンジニア」MicrosoftMVP 山崎
https://www.youtube.com/channel/UCmMFmjhf1BXB1tlLcbkVRrg
◇LaravelDB.com 解説ページ一覧&対応カラム一覧
操作手順『 Laravel DB.com 』
https://qiita.com/daisu_yamazaki/items/9f0dd73553367f8077f0
◇「動かして学ぶ!Laravel開発入門(翔泳社)」本だしました。
◇LaravelDB.com サイト
◇Twitter:laravelDB.com
以上