Laravel migrationsでカラムのコメント変更

Laravel + MySQLにて、Laravelのusersテーブルのカラムにコメントを追加したいとする。
特に変更を加えていなければusersテーブルは下記の構成になっていると思う。

mysql> show create table users;
CREATE TABLE `users` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email_verified_at` timestamp NULL DEFAULT NULL,
  `password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `users_email_unique` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |

migrationファイルを作成し、

php artisan make:migration hogehoge --table=users

$table->型(カラム名)->comment(コメント)->change();
っと書くみたい。

例:nameに指名とコメントをつけたい場合

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('name')->comment('指名')->change();
    });
}

rollback用に元のコメントを書いておくのもありかなと。。。

public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('name')->comment('')->change();
    });
}

型をいれるのがいけてない感じはするが、MySQLに直で書く場合も型は必要そうなのでそういう仕様なんだなと。。。。
直で書く場合はstringでなく、nameカラムの型に合わせてvarchar(255)指定となる。

ALTER TABLE users MODIFY name varchar(255) COMMENT '指名';

コメントを残す

メールアドレスが公開されることはありません。