Laravel Migration Change Datatype Timestamp to Datetime Example
Hi Guys,
In this post, we will learn laravel migration change timestamp to datetime. you can understand a concept of how to change timestamp to datetime in laravel migration. you will learn laravel migration change datatype timestamp to datetime. I explained simply step by step laravel migration update data type timestamp to datetime.
Laravel migration provides way to add column name and datatype. But if you need to change column datatype then you have to install doctrine/dbal package to change datatype. In this example i will show you two ways to change datatype timestamp to datetime in laravel migration.
In this example, i will change publish_date column datatype timestamp to datetime.
So, let's see the simple example of laravel migration change timestamp to datetime.
Install doctrine/dbal: optional
First of all we need to install "doctrine/dbal" composer package. This package allow to use change() method to update datatype using laravel migration.
composer require doctrine/dbal
Default Created Table
Here, you will see the default created table screenshot.
Way 1: Create Migration
Create new migration using following command:
php artisan make:migration change_datatype_column
Now, You can update it as like the bellow:
database/migrations/migration_name.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('posts', function (Blueprint $table) {
$table->dateTime('publish_date')->change();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('posts', function (Blueprint $table) {
});
}
};
Now, you are ready to run migration command:
php artisan migrate
You will see the layout as like the below:
Way 2: Create Migration
Create new migration using following command:
php artisan make:migration change_datatype_column
Now, You can update it as like the bellow:
database/migrations/migration_name.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
\DB::statement('ALTER TABLE `posts` CHANGE `publish_date` `publish_date` DATETIME NULL DEFAULT NULL;');
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('posts', function (Blueprint $table) {
});
}
};
Now, you are ready to run migration command:
php artisan migrate
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. 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, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- Laravel Migration Change Default Value Example
- Laravel Migration Change Datatype Date to Timestamp Example
- Laravel Migration Change Datatype Integer to Decimal Example
- Laravel Migration Change Datatype Int to Bigint Example
- Laravel Migration Change Datatype Integer to String Example
- Laravel Migration Change Datatype String to Integer Example
- Laravel Migration Change Datatype Varchar to Text Example
- Laravel Migration Change Datatype Text to Longtext Example
- How to Change Column Length using Laravel Migration?
- How to Update Enum Value in Laravel Migration?
- Laravel Migration Enum Default Value Example
- Laravel Migration Add Enum Column Example
- Laravel Migration Add Comment to Column Example