Миграция Laravel: Как я могу изменить значение по умолчанию для типа данных ENUM? - PullRequest
0 голосов
/ 30 мая 2018

В моей миграции у меня есть столбец таблицы с именем "assets.status" с типом данных ENUM.Значение по умолчанию установлено как «активное», и я хочу изменить его, изменив его на «обработка».

1 Ответ

0 голосов
/ 30 мая 2018

Вы захотите создать новую миграцию и использовать метод change().

https://laravel.com/docs/5.6/migrations#modifying-columns

Schema::table('users', function (Blueprint $table) {
    $table->string('name', 50)->change();
});

Совет: всякий раз, когда вам нужно внести изменения в базу данныхк рабочим базам данных вы никогда не должны изменять существующие миграции.Всегда создавайте новую миграцию, даже для небольших изменений.

ОБНОВЛЕННЫЙ ОТВЕТ

Поскольку вы не можете использовать метод Schema для обновления типов перечислений, вы можете использовать базовый фасад БДвручную обновить столбец:

public function up()
{
    \DB::statement("
        ALTER TABLE table_name CHANGE column_name column_name ENUM('option1','option2') DEFAULT option1
    ");
}

public function down()
{
    \DB::statement("
        ALTER TABLE table_name CHANGE column_name column_name ENUM('option1','option2') DEFAULT previous_default_column
    ");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...