2015-04-01 53 views
27
psql --version 
psql (PostgreSQL) 9.4.1 

rails -v 
Rails 4.2.0 

我通過移民加入了jsonb柱像Rails和jsonb型 「jsonb」 不存在

class AddPreferencesToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :preferences, :jsonb, null: false, default: '{}' 
    add_index :users, :preferences, using: :gin 
    end 
end 

我得到這個錯誤:

PG::UndefinedObject: ERROR: type "jsonb" does not exist 
LINE 1: SELECT 'jsonb'::regtype::oid 

任何幫助嗎?

+0

我前幾天看到這個問題,似乎沒有任何解決方案。你可以嘗試升級到4.2.1或降級你的導軌 – argentum47 2015-04-01 15:10:22

+0

@ argentum47我認爲這是我的錯,我會解決它併發布答案。謝謝。 – medBo 2015-04-01 18:07:18

回答

54

環顧四周後,我發現我的PostgreSQL的版本不是9.4運行正確的命令

postgres=# SHOW SERVER_VERSION; 
server_version 
---------------- 
9.1 

所以我不得不乾脆到我的PostgreSQL升級到9.4。

順便我跟着this article做了升級,我發現很方便。

現在:

postgres=# SHOW SERVER_VERSION; 
server_version 
---------------- 
9.4.1 

希望這有助於有人在同樣的情況。

+0

正確。升級postgresql版本有所幫助。這[其他升級指南](https://medium.com/@tk512/upgrading-postgresql-from-9-3-to-9-4-on-ubuntu-14-04-lts-2b4ddcd26535)也適用。 – Francisco 2017-08-21 00:07:25

+0

該指南適用於大多數debian系統 - 但是對於Ubuntu 14.04(它沒有postgres-9.4軟件包/存儲庫)需要做更多的工作。對於舊版本的Ubuntu,請在askubuntu.com上搜索,因爲那裏有大量的解決方案。 – Todd 2017-09-29 15:33:35