Laravel マイグレーションのスキーマビルダには「テーブルコメント」を設定するための関数が提供されていません。

当記事では「そこをなんとか」するための方法をご案内いたします。

やりたいこと

Laravel のマイグレーションでテーブルにコメントを入れる

環境

  • PHP 7.1 系
  • Laravel 5.5 系
  • MySQL 5.7 系

マイグレーションファイル

解決方法はとてもシンプルです。

マイグレーションファイル内でALTER 文を実行し、テーブルコメントを設定すればよいのです。

コードサンプル

 1public function up()
 2{
 3  Schema::create('flights', function (Blueprint $table) {
 4    $table->increments('id')->comment("フライトID");
 5    $table->string('name')->comment("フライト名");
 6    $table->timestamps();
 7  });
 8
 9  // ALTER 文を実行しテーブルにコメントを設定
10  DB::statement("ALTER TABLE flights COMMENT 'フライト'");
11}

補足:DB::statement() とは ?

ALTER 文を実行するために DB::statement() を呼び出しています。

この関数は「任意 SQL を実行するもの」のため、色んなシーンで活用することができますね。

bool statement(string $query, array $bindings = []) Execute an SQL statement and return the boolean result.

https://laravel.com/api/5.5/Illuminate/Database/Connection.html#method_statement

まとめ

Laravel のスキーマビルダーは多機能で、美しくテーブルを定義、管理できるためとても重宝しております。

今回のケースのように、細かく見れば非対応のものも当然ありますね。 そういうものが出てきたときに与えられたものなんとかしようとしない、という気の持ち方が(視野の広さ ? 切り替えの速さ ?)が意外と大切だなーと感じます。

参考

Laravel のマイグレーションで MySQL の COMMENT を扱う http://takaya030.hatenablog.com/entry/20130926/1380209935

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

竹澤 有貴,栗生 和明,新原 雅司,大村 創太郎
出版社:ソシム  発売日:2018-09-26

Amazonで詳細を見る

PHPフレームワーク Laravel入門

掌田津耶乃
出版社:秀和システム  発売日:2017-09-16

Amazonで詳細を見る

この記事の著者 Webrow (うぇぶろう)
Web アプリ開発、 Web 顧問 エンジニア、WordPress サポートいたします。