Переименование столбца с postgreSQL при миграции

Я пытаюсь переименовать столбец в миграции:

\Schema::table('invitations', function (Blueprint $table) {
    $table->renameColumn('service_id', 'project_id');
});

Запуск этого результата с ошибкой:

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

Моя таблица как столбец jsonb, я думаю, что это проблема, но я не знаю, почему возникает эта проблема (потому что service_id не является столбцом jsonb).

Как я могу переименовать свой столбец? (и почему он не работает с тем, что я написал?)


person rap-2-h    schedule 25.01.2017    source источник
comment
обязательно добавьте doctrine/dbal в ваш composer.json файл и запустите composer update.   -  person AfikDeri    schedule 25.01.2017
comment
@AfikDeri Включено.   -  person rap-2-h    schedule 25.01.2017
comment
Просто напишите чистый запрос sql alter table в транзакции. ALTER TABLE invitations RENAME COLUMN service_id TO project_id;   -  person maches    schedule 25.01.2017


Ответы (1)


Я написал аналогичную миграцию для MySQL, ИМХО, никакой разницы с Psql. Функция renameColumn() работает только с Doctrine \ DBAL`, и я не хотел добавлять эту зависимость в наш проект. Так что я сделал это вот так

DB::transaction( function () {
    DB::raw('ALTER TABLE invitations RENAME COLUMN service_id TO project_id');
});

Извините за мой английский.

person maches    schedule 25.01.2017