Миграции Laravel изменяют тип столбца с varchar на longText

Мне нужно изменить тип столбца миграции $table->string('text'); для текстового типа я попытался сделать это несколькими способами, но ни один из них не работал. Возможно ли это сделать за одну миграцию. Я мог бы, наверное, удалить столбец, а затем создать его снова с новым типом, но мне интересно, можно ли сделать это за одну миграцию?

3 ответов


Да, вы можете создать новую миграцию и изменить только один столбец типа:

public function up()
{
    Schema::table('sometable', function (Blueprint $table) {
        $table->text('text')->change();
    });
}

по данным Laravel Doc

вы можете сделать это как

Schema::table('yourTable', function (Blueprint $table) {
    $table->text('text')->change();
});

обязательно добавьте зависимость doctrine/dbal к вашему композитору.файл json


Это можно сделать с миграцией таблицы.

как упоминалось в других сообщениях, обязательно запустите composer install doctrine/dbal из корня проекта.

Они настроены с:

php artisan make:migration alter_table_[yourtablenamehere]_change_[somecolumnname] --table=[yourtablenamehere]

из корневого проекта.

из документации:

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

class AlterTableSomething extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('table', function (Blueprint $table) {
            $table->text('column_name')->change();
        });
    }
}