How to Add Index in Laravel Migration?

By Hardik Savani April 16, 2024 Category : Laravel

Here, i will show you how to works how to add mysql index in laravel migration. i would like to share with you laravel migration add index on column. you will learn laravel migration add unique index. let’s discuss about laravel migration create index. you will do the following things for laravel migration create unique index.

I will give you very simple example of how to create table with index column using laravel migration. you can easily use this example with laravel 6, laravel 7, laravel 8, laravel 9, laravel 10 and laravel 11 version.

in this example, we will create items table and add index for title and created_at column. you can also add unique index using laravel migration. i will show you both example one by one.

Example 1: Simple Index

Create Migration Command:

php artisan make:migration create_items_table

database/migrations/2021_04_01_040458_create_items_table.php

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

class CreateItemsTable extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::create('items', function (Blueprint $table) {

$table->id();

$table->string('title');

$table->text('body');

$table->timestamps();

$table->index(['title', 'created_at']);

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

Schema::dropIfExists('items');

}

}

run migration

php artisan migrate

Output:

Example 2: Unique

Create Migration Command:

php artisan make:migration create_items2_table

database/migrations/2021_04_01_040458_create_items2_table.php

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

class CreateItems2Table extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::create('items2', function (Blueprint $table) {

$table->id();

$table->string('title');

$table->text('body');

$table->timestamps();

$table->unique(['title']);

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

Schema::dropIfExists('items2');

}

}

run migration

php artisan migrate

Output:

I hope it can help you...

Shares