Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么psql版本输出和连接到我的应用程序的psql版本之间存在差异?_Ruby_Json_Ruby On Rails 3_Postgresql_Ubuntu 13.10 - Fatal编程技术网

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

Ruby 为什么psql版本输出和连接到我的应用程序的psql版本之间存在差异?,ruby,json,ruby-on-rails-3,postgresql,ubuntu-13.10,Ruby,Json,Ruby On Rails 3,Postgresql,Ubuntu 13.10,我正在构建一个rails应用程序,它是我从朋友那里克隆的。我使用的是Ubuntu 13.10,rails 3.2.14。我使用的是postgresql数据库,当我尝试运行rake db:migrate时,会出现如下错误: PG::UndefinedObject:错误:类型json不存在 第1行:ALTERTABLE过滤器添加列搜索\字符串json 我安装了pg版本:-9.3.1 运行rails数据库的输出是:-psql 9.3.1,服务器9.1.10 正在运行选择版本;:-i686 pc lin

我正在构建一个rails应用程序,它是我从朋友那里克隆的。我使用的是Ubuntu 13.10,rails 3.2.14。我使用的是postgresql数据库,当我尝试运行rake db:migrate时,会出现如下错误:

PG::UndefinedObject:错误:类型json不存在 第1行:ALTERTABLE过滤器添加列搜索\字符串json

我安装了pg版本:-9.3.1

运行rails数据库的输出是:-psql 9.3.1,服务器9.1.10

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

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

我的朋友正在处理9.2.4我不知道为什么会发生这个错误,我尝试过多次使用purge或remove命令来降级以删除9.3.1。一切都很顺利,但当我检查psql-version时,它再次显示了9.3.1。有什么解决方案吗?

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

大概您有用于服务器的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存储库进行升级


请参见

中的说明。您可以发布您的GEM文件吗?