在迁移中使用 postgreSQL 重命名列
Posted
技术标签:
【中文标题】在迁移中使用 postgreSQL 重命名列【英文标题】:Renaming column with postgreSQL in a migration 【发布时间】:2017-06-10 12:47:17 【问题描述】:我尝试在迁移中重命名列:
\Schema::table('invitations', function (Blueprint $table)
$table->renameColumn('service_id', 'project_id');
);
运行这个会导致错误:
请求的未知数据库类型 jsonb,Doctrine\DBAL\Platforms\PostgreSQL92Platform 可能不支持。
我的表作为jsonb
列,我认为是问题所在,但我不知道为什么会出现此问题(因为service_id
不是jsonb
列)。
如何重命名我的专栏?(为什么它不适用于我写的内容?)
【问题讨论】:
确保将doctrine/dbal
添加到您的composer.json
文件并运行composer update
。
@AfikDeri 包括在内。
事务中只写纯sql alter table 查询。 ALTER TABLE invitations RENAME COLUMN service_id TO project_id;
【参考方案1】:
我为 mysql 写了类似的迁移,恕我直言,与 Psql 没有区别。
renameColumn()
函数仅适用于 Doctrine\DBAL`,我不想将此依赖项添加到我们的项目中。所以我就这样做了
DB::transaction( function ()
DB::raw('ALTER TABLE invitations RENAME COLUMN service_id TO project_id');
);
对不起我的英语。
【讨论】:
以上是关于在迁移中使用 postgreSQL 重命名列的主要内容,如果未能解决你的问题,请参考以下文章