マイグレーションファイル名はなんでもいいですが、クラス名(1番目の引数)が被ってしまうとエラーになるので、注意して命名してください。
php artisan make:migration change_catalogs_add_title_index --table=catalogs
クラス名(class ChangeConsentformsDelBiko extends Migration)でファイルが作成されます。
成功すると 次のようなファイルが生成されます
2019_09_28_180737_change_catalogs_add_title_index
このファイルを次のように記述します。
public function up()
{
Schema::table('consentforms', function (Blueprint $table) {
$table->index('title'); // この行を追加
});
}
public function down()
{
Schema::table('consentforms', function (Blueprint $table) {
$table->dropIndex(['title']); // この行を追加(配列で渡す)
});
}
マイグレーションの実行
php artisan migrate
実行するとインデックス catalogs_title_index が作成されます。
MySQLのTEXT型の場合はインデックスのサイズを指定する必要があります。(最大255 bytes)
テーブル : artists
カラム : yomi_name
の場合
Schema::table('artists', function (Blueprint $table) {
DB::statement('CREATE INDEX artists_yomi_name_index ON artists (yomi_name(100));');
});
とします。