我最近克隆了一个项目到我的本地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
答案 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
并从那里运行所有命令。现在一切都很好。