146
119

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

サービスリリースから半年「 LaravelDB.com 」現状&機能まとめ

Last updated at Posted at 2020-06-18

#◇LaravelDB.com知ってます?
Laravelのデータベース設計(ER図)するだけで、MigrationファイルやCRUDのソースコードがポンって作成できる無料の**「 超爆速プロトタイプ作成 」** ツールです。
※Migrationの基礎知識やテーブル名に"s"を付けるなどLaravelのルールを知ってることが前提条件
image.png

##さくっとどんなものか知りたい人用DEMO動画
https://youtu.be/sHt5v4XOWbc

##LaravelDB.comを1年半運営してみての反省
https://youtu.be/NbganVQJgmU

2020-09-22以降からは「Migration」を軸にアップデートしていきます
※CRUD機能のアップデートはどうなるか未定(Laravel7までは動作確認ずみ)

###メイン機能

  • Migration&CRUDコード(ベータ版) の自動生成
  • CRUDコード(ベータ版) でのValidation自動生成(テーブル設計に合わせて自動で生成)
  • チームメンバーとの共有可能
  • リレーション(JOIN)自動生成

#◇そしてサービスリリースから6ヶ月
世界で800名(2020年8月末現在で900名)の登録者がありました。
これが多いか少ないかは私にはわかりませんが、よく使っていただいてるコアユーザーはいるようです。ありがとうございますm(_ _)m

GoogleAnalytics 地図画像
SnapCrab_NoName_2020-5-11_12-35-59_No-00.png

###日本からのアクセスも多く上位3位は、

  1. 東京
  2. 大阪
  3. 神奈川
  4. 福岡
  5. 名古屋

###国、海外からのアクセスが多い順

  1. 日本
  2. アメリカ
  3. インド
  4. イギリス
  5. ベトナム

の順です。
※ここらへんは時期によって変動があります(一時期トルコが多かったですね。)。

###要望は少しもらってます
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
IMAGE ALT TEXT HERE
※ブラウザ画面は海外の言語設定だと「英語表記」されるようになっています。

##◇アップデート「 UNIQUE, INDEX, ENUM, UNSIGNED ] 対応(2020-09-22以降)
2020-09-22以降に作成した、新規プロジェクトより表示されるようになります
以下はENUM、Doubleの入力してる例です。

SnapCrab_No-0043.png

##◇リレーション自動生成(2020-07-10以降は新画面)
今まで、外部キー制約の機能のみ実装されていましたが 2020年03月04日から「 リレーション(JOIN) 」が生成できるようになりました。

  1. まずは、ER図を簡単に作ってみましょう!!
    その後、右メニュー**「 [Data]セーブ/ロード 」**クリックすると以下画面が表示されます。
  1. BUILD [CRUD CODE] をクリック!!CRUD ファイル一式が生成されます!!

######【ポイント】

  • **Relation(Beta)**にチェックを入れておくとリレーションします。

  • BUILD [MIGRATION] でもリレーション(QueryBuilder)がコメントで生成されますよ。

####【リレーションのポイント】

  • JOINしてるテーブルの全ての項目を最初は表示します(同項目名が存在する場合、片方のみ表示します)。
  • CRUDのコードが生成されたら、仕様に合わせてHTMLテーブルの項目を削除してください。
  • 中間テーブルなどに有効です。
  • リレーションは上記画像のように「チェック」を入れないと生成されません。
  • Controller内にコードが生成されてますので、確認しておくと良いでしょう!

プロトタイプ(ベースになるコードを生成してくれる)には十分すぎる機能ですね。
※外部キーは非推奨としています(理由:Migrationの実行順序が重要でエラーになりやすい為)

##◇Validationがスゴイ! → テーブル設計に合わせて生成
######Validationって地味に面倒ですよね、これかなり助かります!!

※ENUMは必須・未入力のみ出力。
※intは型・必須・未入力のみ出力。

例でざっくりテーブルをER図で書いてみました。
以下"t_gsusers"テーブルを中心に見ていきます。

生成されたコントローラーのcreate(),edit()にはこういったvalidationが挿入されます。

TGsusersController
            $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をコピー
ここでコピーしたIDを相手に知らせます。

【シェアData 「受信側」】

1 [シェアData]読み込み

相手は送られてきた[シェアData]IDを貼り付けます。

#####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開発入門(翔泳社)」本だしました。
https://www.amazon.co.jp/dp/B08TBF3FQS/

#◇LaravelDB.com サイト
laravelDB.com

#◇Twitter:laravelDB.com
LaravelDB.com


以上

146
119
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
146
119

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?