Изменение значения столбца по умолчанию в миграции Laravel с примерами кода

Чтобы изменить значение столбца по умолчанию при миграции Laravel, вы можете использовать один из следующих методов:

Метод 1. Измените столбец с помощью метода defaultTo:

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class ChangeColumnDefaultMigration extends Migration
{
    public function up()
    {
        Schema::table('your_table_name', function (Blueprint $table) {
            $table->string('your_column_name')->default('new_default_value')->change();
        });
    }
    public function down()
    {
        Schema::table('your_table_name', function (Blueprint $table) {
            $table->string('your_column_name')->default('old_default_value')->change();
        });
    }
}

Метод 2. Используйте метод statementдля выполнения необработанных SQL-запросов:

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class ChangeColumnDefaultMigration extends Migration
{
    public function up()
    {
        DB::statement("ALTER TABLE your_table_name ALTER COLUMN your_column_name SET DEFAULT 'new_default_value'");
    }
    public function down()
    {
        DB::statement("ALTER TABLE your_table_name ALTER COLUMN your_column_name SET DEFAULT 'old_default_value'");
    }
}

Метод 3. Создайте новую миграцию, чтобы изменить значение столбца по умолчанию:

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class ChangeColumnDefaultMigration extends Migration
{
    public function up()
    {
        Schema::table('your_table_name', function (Blueprint $table) {
            $table->string('your_column_name')->default('new_default_value')->change();
        });
    }
    public function down()
    {
        Schema::table('your_table_name', function (Blueprint $table) {
            $table->string('your_column_name')->default('old_default_value')->change();
        });
    }
}

Для всех методов обязательно замените 'your_table_name'фактическим именем вашей таблицы и 'your_column_name'фактическим именем столбца, который вы хотите изменить.