2017-01-25 6 views
0

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

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

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

Unknown database type jsonb requested, Doctrine\DBAL\Platforms\PostgreSQL92Platform may not support it.

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

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

+0

Обязательно добавьте 'doctrine/dbal' в свой файл' composer.json' и запустите 'composer update'. – AfikDeri

+0

@AfikDeri Включено. –

+0

Просто напишите чистый sql alter table query в транзакции. 'ALTER TABLE приглашения RENAME COLUMN service_id TO project_id;' – maches

ответ

0

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

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

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

Смежные вопросы