gpt4 book ai didi

ruby - 为什么 psql -version 输出和连接到我的应用程序的 psql 版本之间存在差异?

转载 作者:行者123 更新时间:2023-11-29 14:00:43 26 4
gpt4 key购买 nike

我正在构建一个从 friend 那里克隆的 Rails 应用程序。我正在使用 Ubuntu 13.10,rails 3.2.14。我正在使用 postgresql 数据库,当我尝试运行 rake db:migrate 时,它​​给了我一些这样的错误:

PG::UndefinedObject: ERROR: type "json" does not exist
LINE 1: ALTER TABLE "filters" ADD COLUMN "search_string" json

我安装了 pg 版本:- 9.3.1

运行 rails db 输出是:-psql(9.3.1,服务器 9.1.10)

运行选择版本(); :-i686-pc-linux-gnu 上的 PostgreSQL 9.1.10

为什么它显示的 psql -version 与连接到我的数据库的版本不同?

我的 friend 正在使用 9.2.4 我不知道为什么会出现这个错误,我尝试了几次降级使用清除或删除命令来删除 9.3.1 一切顺利但是当我检查 psql --version it再次向我展示 9.3.1 。有什么解决办法吗???

最佳答案

psql 是一个客户端工具,与 PostgreSQL 服务器不同。这就是为什么它们可以处于不同的版本级别。

假设您有用于服务器的 postgresql-9.1 包和用于客户端的 postgresql-client-9.3 包(包括 psql) .

如果您作为 shell 命令运行:

$ COLUMNS=200 dpkg -l 'postgres*'

它将显示所有 postgres 包的列表及其全名、版本和状态。在此基础上,您可以找出需要安装或卸载的内容。

与 Ubuntu-13.10 捆绑的 PostgreSQL 版本是 9.1。 JSON 类型在 9.1 中不存在,它在 9.2 中出现,所以你想升级到 9.2 或 9.3。

要升级到新的 PostgreSQL 版本,现在推荐的方法是通过 postgresql.org 人员维护的 pgdg 存储库。

请参阅 https://wiki.postgresql.org/wiki/Apt 中的说明

关于ruby - 为什么 psql -version 输出和连接到我的应用程序的 psql 版本之间存在差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19814419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com