2014-07-06 20 views
9

我最近克隆了一个项目到我的本地Ubuntu的盒子,现在我是远程的,并且在耙数据库迁移时,我得到以下错误:获取错误 - 类型“json”不存在 - 在耙数据库迁移Postgresql

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

几个列我的表是:

add_column :table, :column, :json 

这种迁移工作于Mac电脑在工作,但不是在这里工作。我试过升级到PostgreSQL 9.3.4,但问题仍然存在。我也试过sudo apt-get升级postgresql,但问题仍然存在。

的Ruby版本是2.1.0 Rails的版本是4.0.3

+0

你见过这个:http://stackoverflow.com/questions/23284164/rails-3-migration-error-when-using-json-as-a-column-type-in​​-an-activerecord-bac – xlembouras

+0

但是,解决这个问题的方法是我如何设置当前的模式。我也尝试修改application.rb所示的答案无济于事。 – earth2jason

+2

'json'数据类型是在Postgres 9.2中引入的。它应该可以与v9.3.1一起工作。你没有透露你正在连接的Postgres db集群的* actual *版本。你怎么得到'SELECT version()'? –

回答

19

I have tried upgrading to PostgreSQL 9.3.4, but the issue still persists

最有可能你仍然连接到旧版本。试试SELECT version()

既然你提到apt-get,你大概是在Debian或Ubuntu上。这些使用pg_wrapper来允许并行多个PostgreSQL安装。每个人都获得不同的端口号。第一次安装获取默认端口5432.后续安装获得更高的端口。您可以使用pg_lsclusters查看安装。很可能你的9.3安装在端口9433上,你需要改变你的database.yml(因为你使用的是Rails)来连接到那个端口。

+1

其实,是的,这帮助我了解了9.1在线而不是9.3。 9.3下降了。 – earth2jason

相关问题