Laravel Migration Change Column Name and Type Example

April 26, 2020 | Category : Laravel

Hi Artisan,

This article goes in detailed on how to change data type in laravel migration. This tutorial will give you simple example of how to change column name in laravel migration. This tutorial will give you simple example of rename column name laravel migration. i would like to show you laravel migration change column name. follow bellow step for how to change column type in laravel migration.

I will give you two example of changing data type and rename column name using migration in laravel application.

First of all we need to install "doctrine/dbal" composer package.

Install Composer Package:

composer require doctrine/dbal

After successfully install composer package we can change data type and change column name using migration.

Let's see bellow example:

Migration for main table:

<?php

use Illuminate\Support\Facades\Schema;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Database\Migrations\Migration;

class CreatePostsTable extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

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

$table->bigIncrements('id');

$table->string('title');

$table->text('body');

$table->boolean('is_publish')->default(0);

$table->timestamps();

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

Schema::dropIfExists('posts');

}

}

Change Data Type using Migration:

body column text data type to long text data type here.

<?php

use Illuminate\Support\Facades\Schema;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Database\Migrations\Migration;

class ChangePostsTableColumn extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::table('posts', function (Blueprint $table) {

$table->longText('body')->change();

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

}

}

Rename using Migration:

rename title column to name changed.

<?php

use Illuminate\Support\Facades\Schema;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Database\Migrations\Migration;

class ChangePostsTableColumn extends Migration

{

/**

* Run the migrations.

*

* @return void

*/

public function up()

{

Schema::table('posts', function (Blueprint $table) {

$table->renameColumn('title', 'name');

});

}

/**

* Reverse the migrations.

*

* @return void

*/

public function down()

{

}

}

I hope it can help you...