【问题标题】:Renaming column with postgreSQL in a migration在迁移中使用 postgreSQL 重命名列
【发布时间】: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
  • @Afik​​Deri 包括在内。
  • 事务中只写纯sql alter table 查询。 ALTER TABLE invitations RENAME COLUMN service_id TO project_id;

标签: postgresql laravel laravel-5 doctrine laravel-migrations


【解决方案1】:

我为 MySQL 写了类似的迁移,恕我直言,与 Psql 没有区别。 renameColumn() 函数仅适用于 Doctrine\DBAL`,我不想将此依赖项添加到我们的项目中。所以我就这样做了

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

对不起我的英语。

【讨论】:

    猜你喜欢
    • 2018-12-10
    • 2012-09-03
    • 2013-12-14
    • 2018-07-18
    • 2014-12-18
    • 2018-06-13
    • 2019-08-24
    • 2020-06-22
    • 2016-02-02
    相关资源
    最近更新 更多