获取错误 - 类型“json”不存在 - 在rake db migrate期间的Postgresql中

时间:2014-07-06 21:17:50

标签: ruby-on-rails ruby json postgresql

我最近克隆了一个项目到我的本地Ubuntu框,因为我是远程的,并且在rake db migrate上,我收到以下错误:

PG::UndefinedObject: ERROR:  type "json" does not exist

我的表中的几列是:

add_column :table, :column, :json

此迁移适用于正在运行的Mac,但在此处无效。我已经尝试升级到PostgreSQL 9.3.4,但问题仍然存在。我也试过sudo apt-get upgrade postgresql,但问题仍然存在。

Ruby版本是2.1.0 Rails版本是4.0.3

2 个答案:

答案 0 :(得分:19)

  

我已尝试升级到PostgreSQL 9.3.4,但问题仍然存在

您很可能还在连接旧版本。试试SELECT version()

因为您提到apt-get,大概是在Debian或Ubuntu上。这些使用pg_wrapper允许并行安装多个PostgreSQL。每个人都有一个不同的端口号。第一次安装获得默认端口5432.后续安装获得更高端口。

您可以使用pg_lsclusters查看安装。您的9.3安装很可能是在端口9433上,您需要更改database.yml(因为您使用Rails)才能连接到该端口。

答案 1 :(得分:5)

如果由于任何原因您遇到此问题,您的9.3版本实际上并未运行。

我发现此链接非常有用:

http://nixmash.com/postgresql/upgrading-postgresql-9-1-to-9-3-in-ubuntu/

我开始使用命令:

sudo service postgresql stop

并从那里运行所有命令。现在一切都很好。