みなさん、こんにちは!
今回は個人開発でLaravelのマイグレーションファイルを自動で作成するWebアプリのご紹介をしていきたいと思います(^^)
サービス概要
URL:https://migration-generator.com/
あらかじめ決められたフォーマットでDB設計書を作成しておき、設計書をこのアプリにアップロードすることでマイグレーションファイルを作成することができます。
このサービスを作った理由
普段からLaravelを使ってサンプルアプリや個人開発プロダクトの制作を行なっている中で、「毎回マイグレーションファイルを作るの面倒だな、、、」と思い、当アプリを制作しました。
理想的には、DB設計が完了した時点でマイグレーションファイルは作成されていて欲しかったのですよね。
また、当初は自分だけで使っていたのですが、自分以外にも同じ不満を持っているLaravelユーザーがいるかもしれないので、少し見た目を整えてアプリとして公開することにしました。
サービスの機能
サービスの機能としては、以下の2つです。
- DB設計書からLaravelマイグレーションファイルの自動作成
- DB設計書からMySQLのSQL自動作成
DB設計書はExcelかCSV形式を想定しています。
設計書のフォーマットは、アプリで決められたフォーマットを使う必要があります。
アプリ内でサンプルファイルをダウンロードすることができるので、そちらに沿って設計書を作成するのが最も確実です。
現時点では全てのデータ型には対応していません。
以下が対応しているデータ型一覧です。
| データ型 | 説明 |
|---|---|
| varchar | 可変長文字列(サイズ推奨) |
| text | 長いテキストコンテンツ |
| string | varcharと同じ |
| int | 整数 |
| bigint | 大きな整数(ID推奨) |
| unsignedInteger | 符号なし整数(正の値のみ) |
| unsignedBigInteger | 符号なし大きな整数(正の値のみ) |
| float | 単精度浮動小数点数 |
| double | 倍精度浮動小数点数 |
| decimal | 小数 |
| date | 日付(YYYY-MM-DD形式) |
| timestamp | タイムゾーン付きタイムスタンプ |
| datetime | 日付と時刻 |
| boolean | 真偽値 |
制約としては以下が対応しています。設計書の備考欄に「主キー」や「ユニーク」と書いておくと、自動的に対応されます。
- 主キー制約
- ユニーク制約
現時点では外部キー制約やインデックスには対応していないため、手動で加える必要があります。
デフォルト値としては、以下が使えます。
| デフォルト値 | 説明 |
|---|---|
| CURRENT_TIMESTAMP | 現在のタイムスタンプ |
| 任意の文字列 | 文字列のデフォルト値 |
| 任意の数値 | 数値のデフォルト値 |
| 任意の真偽値 | 真偽値のデフォルト値 |
使用技術
使用している技術は以下です。
| プログラミング言語 | JavaScript |
| フレームワーク | Vue.js, TailwindCSS |
| コード管理 | Git, Github |
| ホスティング | Netlify |
| AIツール | Bolt.new, Github Copilot |
特に変わった技術は使っていませんね😇
ちなみにほとんどのコードはAIのBolt君に作ってもらっており、ほぼ1日で作ることができました🙌
Bolt.newはUI構築をほぼやってくれるフロントエンドエンジニアとして使うことができます。

気になる方はのぞいてみてはいかがでしょうか。
まとめ
今回は最近リリースした便利アプリの紹介をしてみました。
Laravelのマイグレーションファイルは下手すると数十ファイルを一度に作成することもあるので、面倒だなと感じたらぜひ当サービスを思い出して使っていただけたらなと思います。
また、もしそれなりの需要を感じたら、今後対応しているデータ型の拡張や他フレームワークのマイグレーションファイルにも対応していけるように少しずつアップデートしていこうかと思います。
今回はここまでとします。ご清聴ありがとうございました!


コメント