LaravelDB.com~操作方法と勘所を書いた〜(基本操作編)
laravelDB.com
◇テーブル設計(ER図)するだけで、Migrationファイルがポンって作成できるFreeの 「 テーブル設計&Migration作成 」 Laravel専用ツールです。
*2020-10-04にアップデートしValidationも生成されます。
基本操作(最新動画)
メイン機能
- Migrationの自動生成
- チームメンバーとの共有可能
- CRUDコード(β版)の自動生成
- CRUDコード(β版)でのValidation自動生成(テーブル設計に合わせて自動で生成)
利用について
個人/プログラミング学習者: 無料
企業/商用利用:paypal等の寄付・ウイッシュリストでの寄付・Twitter等のSNSでの応援投稿も可
用途
用途は開発者によってバラバラですね。
・Migrationのみ使う(ほとんどの人はここですかね)
・CRUDファイル全部(数%くらいの人)
・コード生成後、一部(Validationとか)をコピーして使う(結構な割合でいます)
・テーブル設計の共有(Team開発では使ってるようです)
◇操作方法(マニュアル)
1.テーブル作成
2.カラム作成
※使いやすくするポイント!! 「列を追加」ボタンを連打で必要な数だけ先に作ると便利!!
3.2020-09-24アップデートから使用可能
「 ENUM, UNSIGNED ] に対応、新規プロジェクトより表示されるようになります
以下はENUM、Doubleの入力してる例です。
「 UNIQUE, INDEX ] に対応、新規プロジェクトより表示されるようになります
外部キーの設定
外部キー制約を使用する場合( ※1対他、多対多などを分ける機能は無い)
4.ER図の保存
コントロールパネル**[Data:セーブ/ロード]**から移動します。
「クラウドに保存」or「ブラウザに保存」を選択できます。
この例では「クラウドに保存」を選択。
Save/Load機能 | 機能詳細 |
---|---|
クラウドへ保存 | アカウントに紐づきクラウドに保存します。 |
クラウドデータ一覧 | 保存したクラウド側のデータ一覧 |
ブラウザに保存 | 使用中のブラウザ「LocalStorage」に一時保存 |
ブラウザデータ一覧 | localStorageに保存したデータ一覧 |
上記の「データ一覧」選択後、「 -- Data List -- 」の選択肢が表示されます。
そこに表示されるデータ項目を選択するとER図を復元します。
5.Migrationを生成
[ER図から出力]内の**Build [Migration]**ボタンをクリックしてダウンロードします!
Zipファイルを解凍してダウンロードファイルを確認。
【ER図をTeamでシェア】
テーブル設計をシェアする機能のことです。
1 [送信側:シェアData]作成
見せたい相手にIDを渡しておいて、変更があれば「Create a [Share ID]」ボタンを押すと毎度データ更新されることを知っておきましょう!
2 [送信側:シェアData] IDをコピー
ここでコピーしたIDを相手に知らせます。
3 [受信側:シェアData]読み込み
相手は送られてきた[シェアData]IDを貼り付けます。
4 「Read」ボタンをクリックしてデータを受信表示しましょう。
5.シェアデータの複製が完了!!
受信側にデータが入りました!受信側もそのデータを活用できるようになります。
チーム・メンタリング等のケースでも利用可能です。
※受信後は「別名を付けて保存しておくと良いでしょう!」
◇ リバースエンジニアリング(Migration → ER図)
フォルダにMigrationファイル(Schema::createのみ)一式集めZip圧縮したファイルをアップロードすることで、ER図へ変換(リバース)することが可能です。
Migrationファイル一式をZIP圧縮 → [ Reverse >>> ERD ]ボタンでアップロード
アップロード完了するとER図が表示されます。
Migration(ZIPファイルに一式纏めて) | 機能詳細 |
---|---|
[ Reverse >>> ERD ] | Migrationファイル一式をフォルダに入れて、ZIP圧縮したファイルをアップロード |
1.注意
以下Migrationファイル 「 Schema::create 」のみ現在は可能
※ Schema::create以外は対応検討中
Schema::create("テーブル名", function (Blueprint $table) {...}
2.注意
「LaravelDB.com」からZIPファイルをダウンロードしたファイルをそのままアップロードは出来ません。必ず、一度解凍したものをZIP圧縮しなおしてuploadしてください。
3.注意
macOS Catalinaのデフォルト圧縮では使用できないと報告が上がっています!!
『 macOS Catalinaによるzipファイルが解凍できない&ZIPアップロード読み込み不具合も解決あらゆる圧縮ファイルを解凍できる 「 The Unarchiver 」 』
をお使いください。
◇ β版のCRUD/リレーションを使用したい場合(まだまだ開発段階の未知の機能)
<重要>この機能はテーブル名の末尾に「s」が無いとうまく動作しません。
※ENUMは必須・未入力のみ出力。
※intは型・必須・未入力のみ出力、sizeが未対応。
※2020-09-24Migrtion機能にアップデートが入ったので、β版機能に影響があるかもしれません。
- まずは複数のテーブルを簡単に作り「外部キーの接続」をして準備してください
その後、右メニュー 「 [Data]セーブ/ロード 」 クリックすると以下画面が表示されます。 - BUILD [CRUD CODE] をクリック!!CRUD ファイル一式が生成されます
【ポイント】
-
**Relation(Beta)**にチェックを入れておくとリレーションします。
-
BUILD [MIGRATION] でもリレーション(QueryBuilder)がコメントで生成されますよ。
【このツールでのリレーションの注意点】
- JOINしてるテーブルの全ての項目を最初は表示します(同項目名が存在する場合、片方のみ表示します)。
- CRUDのコードが生成されたら、仕様に合わせてHTMLテーブルの項目を削除してください。
- リレーションは上記画像のように「チェック」を入れないと生成しないようにしています(Beta版のため)。
- Controller内にコードが生成されてますので、確認しておくと良いでしょう!
- 外部キーはこのツールでは非推奨としています(理由:Migrationの実行順序が重要でエラーになりやすい為)
プロトタイプ(ベースになるコードを生成してくれる)には十分すぎる機能ですね。
◇Validation → テーブル設計に合わせて生成
Validationって地味に面倒ですよね、完璧では内容ですが、少しの手直しで使用できるなら便利そうです!!
上記Migrationファイルは以下のようにValidationが作成されます。
生成されたコントローラーのFormRequest(Migration書き出しの場合)やcreate(),edit()(CRUD書き出しではコントローラーに直接記述してあります)にはこういったvalidationが挿入されます。
{{old('name')}} → 入力項目を補完(CRUD:β版を使用した場合に生成されます)
validationで未入力等ではじかれた場合、入力した文字を消さずに表示します。
ベータ版のCRUD/リレーションの利用シーン
上記のようにβ版ではありますが、全てを利用するというよりは、コードを生成して、必要な部分だけ使うのも良いと思います。(実際にそういったケースを耳にしました〜)
◇LaravelDB.com 対応カラム一覧
tinyIncrements
mediumIncrements
smallIncrements
bigIncrements
increments
mediumInteger
smallInteger
bigInteger
tinyInteger
integer
unsignedInteger (2020-09-24対応)
unsignedTinyInteger (2020-09-24対応)
unsignedSmallInteger (2020-09-24対応)
unsignedMediumInteger (2020-09-24対応)
unsignedBigInteger (2020-09-24対応)
decimal
double
float
enum (2020-09-24対応)
geometryCollection
geometry
jsonb
json
char
longText
mediumText
text
multiLineString
lineString
string
multiPoint
multiPolygon
point
polygon
binary
nullableTimestamps
timestamps (2020-09-24対応)
softDeletes (2020-09-24対応)
dateTime
timestamp
time
year
date
◇そもそも、なんで作ったの?
私は学校でプログラミング(サービスを作る基本)を教えていて、テーブル設計している学生がその場にいて
「テーブル設計して、そこからMigrationファイル作成して、コードをイチから書いて・・・」普通の作業ではあるんですが、何故か「その時は疑問を感じました」、ER図書いたらMigrationファイル生成したら便利だよね~。
何割かの開発者は喜んでくれるのでは?と思ったのがキッカケでした。
特に「テーブル設計は保存可能」なので、前回作ったテーブル設計から新しい設計を複製できるのは嬉しい機能です。設計してMigration or CRUDコード書き出してができるので、「設計して→コード書いて」という往復作業が無くなるので、是非使ってほしいと思います。
今後の展開
2020-09-24以降からは「Migration」を軸にアップデートしていきます
なぜ、↑そう思ったか?
良かれと思った機能が意外に余計だった。。。よくあるパターンですね。
テーブル名に"t_","m_"とかトランザクション・マスターテーブルなどがテーブル名で分かるようにした場合に、自動で「timestamps」「softDeletes」などを挿入する機能が逆に「解りにくくさせていた」という事があります。今回のアップデートで廃止いしたのでご安心ください(余計なことはしません(^^))。
やはりシンプルがベストなんですよね。今はいかに「シンプルにするか」だけ考えてアップデートを考えています。
※必要な機能はどうやって複雑にせずに追加するか?など、悩みが楽しくてしょうがありません。
※CRUD(β版)機能のアップデートはどうなるか未定(Laravel7までは動作確認ずみ)
※Laravel8移行のLTSの仕様で検討予定ですかね~~~かなり変わってるように思ったので。
◇LaravelDB.com サイト
◇Twitterアカウント ツイートページのURLを指定してください
以上
Discussion