Как изменить тип столбца со строки на целое число? Ларавел 5 - PullRequest
0 голосов
/ 08 мая 2018

У меня есть столбец с именем owner_type в таблице с именем events. Этот столбец заполнен одним из двух значений: 0 (для обычных пользователей) и 1 (для бизнес-пользователей).

Этот столбец имеет тип данных string, я хотел бы изменить его на integer, учитывая, что он всегда будет содержать 0 и 1. Итак, я сделал это:

public function up()
{
    Schema::table('events', function (Blueprint $table) {
        $table->integer('owner_type')->change()->default(0);
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('events', function (Blueprint $table) {
        $table->string('owner_type')->default(0)->change();
    });
}

Однако я получаю эту ошибку:

n AbstractPlatform.php, строка 461:

Запрошен неизвестный тип базы данных enum, Doctrine \ DBAL \ Platforms \ MySQL57Platform может не поддерживать его.

В миграции, которая создала events У меня есть:

    $table->enum('**', ['**', '**'])->default('**');
    $table->enum('status', ['*', '*', '*', '*', '*'])->default('*');

Однако эта таблица уже перенесена. Так что не так?

1 Ответ

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

Попробуйте это

    public function up()
{
    //
    Schema::table('events', function($table) {
        $table->string('owner_type')->default(0);
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    //
    Schema::table('events', function($table) {
        $table->dropColumn('owner_type');
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...