首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复SQLSTATE[42704]:未定义的对象:7错误:数据类型json在heroku宿主中没有访问方法"btree“的默认操作符类

如何修复SQLSTATE[42704]:未定义的对象:7错误:数据类型json在heroku宿主中没有访问方法"btree“的默认操作符类
EN

Stack Overflow用户
提问于 2021-03-27 21:54:46
回答 2查看 1.6K关注 0票数 1

我想问一下如何修复在本地托管的laravel中的错误,我使用mysql,但是在heroku,我切换到postgres,在迁移时得到这些错误。

在Connection.php第678行中:

SQLSTATE42704:未定义对象:7错误:数据类型json没有访问方法"btree“的默认操作符类。

提示:必须为索引指定运算符类,或为数据类型定义默认运算符类。(SQL: alter“函数”添加约束"functions_function_elements_unique“唯一("function_elements"))

在Connection.php第471行中:

SQLSTATE42704:未定义对象:7错误:数据类型json没有访问方法"btree“的默认操作符类。

提示:您必须为索引指定一个操作符类,或者为数据类型定义一个默认操作符类。

EN

回答 2

Stack Overflow用户

发布于 2021-03-27 22:04:19

默认情况下,Laravel将使用MySQL。您可能希望尝试其他SQL数据库类型,更改非常简单,但是如果您选择的数据库是postgres,则必须进行一些小的配置。

Install.

  • php.ini
  1. 安装将PostgreSQL下载到您的pc上,或者直接从https://www.postgresql.org/download/下载到https://get.enterprisedb.com/postgresql/postgresql-12.1-3-windows-x64.exe,然后是默认的https://get.enterprisedb.com/postgresql/postgresql-12.1-3-windows-x64.exe,因此需要通过在php.ini中编辑对这两行的php.ini搜索并删除前面的“;”来激活PostgreSQL,以便与PHP一起使用。

;extension=pdo_pgsql ;extension=pgsql

(注意到“;”已删除)

extension=pdo_pgsql extension=pgsql

  1. .env在Laravel的.env文件中酌情更改以下内容(除了DB_DATABASE和DB_PASSWORD之外,所有默认值都可以更改):

DB_PASSWORD=your_choosen_password

DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=database_name DB_USERNAME=postgres

票数 0
EN

Stack Overflow用户

发布于 2021-03-27 22:25:51

大家好,所以我在这里找到了解决方案:);

代码语言:javascript
复制
`
Schema::create('fdeg_functions', function (Blueprint $table) {
        $table->id();
        $table->timestamps();
        $table->Json("function_elements")->unique();
    });`

所以,我要做的就是把json转换成string,它工作得太好了;我认为这不会对应用程序产生任何不良影响,告诉我您看到了什么,我希望这将帮助其他人:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66836495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档