表中的更改列在postgres中具有枚举类型

时间:2018-09-17 04:06:46

标签: php laravel postgresql doctrine laravel-migrations

这是我的代码:

long_to_binary

我想重命名表中的列。并且在此表中有一列是枚举类型。但是错误:请求了未知的数据库类型company_roles,Doctrine \ DBAL \ Platforms \ PostgreSQL100Platform可能
   不支持它。我使用laravel 5.6

1 个答案:

答案 0 :(得分:1)

此问题可能与Laravel文档中提到的内容“您无法重命名具有'enum'类型的表中的列”有关。参见:enter image description here

恐怕这是Laravel使用的具有5年历史的Doctrine / DBal问题,见:[Bug] Schema builder - renameColumn fails on table with enum columns,但解决方法之一也是关于同一问题报告DB Query。作为参考,我将其放在此处:

DB::statement("ALTER TABLE table_name MODIFY COLUMN column_name ENUM('Here','is','choices')");

在这种情况下,您需要在迁移类文件的down()函数中提供正确的语句以恢复表的状态。