既存テーブルからLaravel用のマイグレーションファイルを作成できるsequel-pro用バンドル「sequel-pro-laravel-export」



既に存在するMySQLのデーターベースから、Laravel用のマイグレーション ファイルが作成出来る " sequel-pro " 用のプラグイン「sequel-pro-laravel-export」の紹介です。

PHPのLaravelのフレームワークには データベースのテーブルスキーマを作成してくれる 便利なマイグレーション機能が備わっています。

一からテーブルのスキーマを設計するのであれば意識する必要がありませんが、既にデータベースが出来上がっている場合、テスト・本番環境を踏まえて既存のデータベース用のマイグレーションファイルを作成することも度々あります。

シンプル + テーブル数が少ないのであれば問題がありませんが、テーブル数が多く、構造が複雑だとマイグレーションファイルを作成するのにも神経を使って作業しなくてはいけません。

そんな苦労から開放してくれそうなツールが「sequel-pro-laravel-export」です。

この" sequel-pro-laravel-export "は、Mac用のMySQLクライアント "sequel pro"のバンドルで、ボタン一つでLaravel用のマイグレーションファイルを作成してくれます!

sequel-pro-laravel-exportのインストール

sequel-pro-laravel-exportはバイナリファイルで提供されているので、入手はGitHubのリポジトリページから行ないます。
( Sequel Pro本体はこちらの公式ページから入手できます ) 

github上のレポジトリページ

zipファイルを解答すると"ExportToLaravelMigration.sqBundle"というファイルがあるので、クリックするとインストールがされます


sequel-pro-laravel-exportの使い方

sequel-pro-laravel-exportがインストールされると、
上メニューの ' Bundles ' -> ' Export 'に ' Export To Laravel Migration 'が追加されます。

使い方は説明が必要ないぐらい簡単で、' Export To Laravel Migration ' を押すと、開いているテーブルのマイグレーションファイルが作成されます!

マイグレーションファイルは" デスクトップ "上に作成されます

っということで、試しにこのサイトの'categories'テーブル用のマイグレーションファイルを作成しました!
( timestampsoftDeletesにもキチンと対応されていました )

// 実際に作成されたマイグレーションファイル * 2016_11_23_215304_create_categories_table.php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

/**
 * Migration auto-generated by Sequel Pro Laravel Export
 * @see https://github.com/cviebrock/sequel-pro-laravel-export
 */
class CreateCategoriesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->increments('id');
            $table->tinyInteger('active')->default(1);
            $table->string('name', 255);
            $table->string('color', 255)->default('#1F897F');
            $table->string('icon', 255);
            $table->integer('count');
            $table->timestamps();
            $table->softDeletes();

            $table->unique('name', 'categories_name_unique');
            $table->unique('icon', 'categories_icon_unique');

            

        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('categories');
    }
}

 

Summary

以上が sequel-pro-laravel-export の紹介でした。

Mysqlを使っていて、既存システム -> Laravelにリプレイスする時などに使えば、工数を1つ減らせそうなぐらい便利に使えそうです。

また、新規にシステムを作る場合にも 後々のマイグレーションファイル作成の事を考えずに、DBから設計に入れそうですね!

GitHub : cviebrock/sequel-pro-laravel-export

 

この記事のカテゴリ
プログラミング

この記事のタグ