【问题标题】:why there is difference between psql -version output and the psql version connected to my application?为什么 psql -version 输出和连接到我的应用程序的 psql 版本之间存在差异?
【发布时间】:2013-11-06 14:16:03
【问题描述】:

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

PG::UndefinedObject:错误:类型“json”不存在
第 1 行:更改表“过滤器”添加列“搜索字符串”json

我安装了 pg 版本:- 9.3.1

运行 rails db 输出为 :-psql (9.3.1, server 9.1.10)

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

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

我的朋友正在使用 9.2.4 我不知道为什么会出现这个错误,我尝试了几次使用 purge 或 remove 命令降级以删除 9.3.1 一切正常,但是当我检查 psql --version 时再次向我展示 9.3.1 。有什么解决办法???

【问题讨论】:

  • 你能发布你的 gemfile 吗?

标签: ruby json ruby-on-rails-3 postgresql ubuntu-13.10


【解决方案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 的说明

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 2017-04-19
    • 1970-01-01
    相关资源
    最近更新 更多