Make column not nullable in a Laravel migration Make column not nullable in a Laravel migration laravel laravel

Make column not nullable in a Laravel migration


Prior to Laravel 5, there was no Laravel native way of altering an existing table column using the schema builder. You'd need to use raw queries for this.

However, as of Laravel 5 you can use:

$table->string('foo')->nullable(false)->change();

You must have the dbal dependency prior to running the above command:

composer require doctrine/dbal


As of Laravel 5 it's possible to reverse this by passing false as an argument to nullable.

$table->string('foo')->nullable(false)->change();


First run this:

composer require doctrine/dbal

Then create a migration that will alter the table like so:

php artisan make:migration fix_whatever_table_name_here

public function up(){    Schema::table('table_name', function (Blueprint $table) {        $table->type('column')->nullable(false)->change();    });}# Optional:# public function down()# {#     Schema::table('table_name', function ($table) {#         $table->type('column')->nullable()->change();#     });# }