2014-07-06 21 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

相關問題