How to Add Index in Laravel Migration?

By Hardik Savani | April 2, 2021 | 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 and laravel 8 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...




Hardik Savani
My name is Hardik Savani. I'm a full-stack developer, entrepreneur and owner of Aatman Infotech. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Javascript, JQuery, Laravel, Codeigniter, VueJS, AngularJS and Bootstrap from the early stage.
Follow Me: Github Twitter
***Do you want me hire for your Project Work? Then Contact US.

We are Recommending you: