Laravelのマイグレーションファイルを自動作成するWebアプリを作った話

プログラミング
Screenshot

みなさん、こんにちは!

今回は個人開発でLaravelのマイグレーションファイルを自動で作成するWebアプリのご紹介をしていきたいと思います(^^)

サービス概要

URL:https://migration-generator.com/

あらかじめ決められたフォーマットでDB設計書を作成しておき、設計書をこのアプリにアップロードすることでマイグレーションファイルを作成することができます。

このサービスを作った理由

普段からLaravelを使ってサンプルアプリや個人開発プロダクトの制作を行なっている中で、「毎回マイグレーションファイルを作るの面倒だな、、、」と思い、当アプリを制作しました。

理想的には、DB設計が完了した時点でマイグレーションファイルは作成されていて欲しかったのですよね。
また、当初は自分だけで使っていたのですが、自分以外にも同じ不満を持っているLaravelユーザーがいるかもしれないので、少し見た目を整えてアプリとして公開することにしました。

サービスの機能

サービスの機能としては、以下の2つです。

  1. DB設計書からLaravelマイグレーションファイルの自動作成
  2. DB設計書からMySQLのSQL自動作成

DB設計書はExcelかCSV形式を想定しています。

設計書のフォーマットは、アプリで決められたフォーマットを使う必要があります。
アプリ内でサンプルファイルをダウンロードすることができるので、そちらに沿って設計書を作成するのが最も確実です。

現時点では全てのデータ型には対応していません。
以下が対応しているデータ型一覧です。

データ型説明
varchar可変長文字列(サイズ推奨)
text長いテキストコンテンツ
stringvarcharと同じ
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構築をほぼやってくれるフロントエンドエンジニアとして使うことができます。

Bolt AI builder: Websites, apps & prototypes

気になる方はのぞいてみてはいかがでしょうか。

まとめ

今回は最近リリースした便利アプリの紹介をしてみました。

Laravelのマイグレーションファイルは下手すると数十ファイルを一度に作成することもあるので、面倒だなと感じたらぜひ当サービスを思い出して使っていただけたらなと思います。

また、もしそれなりの需要を感じたら、今後対応しているデータ型の拡張や他フレームワークのマイグレーションファイルにも対応していけるように少しずつアップデートしていこうかと思います。

今回はここまでとします。ご清聴ありがとうございました!

コメント

タイトルとURLをコピーしました