web-dev-qa-db-ja.com

Rails and jsonb type "jsonb" does not exist

psql --version
psql (PostgreSQL) 9.4.1

Rails -v
Rails 4.2.0

そのような移行によって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

何か助け?

34
medBouzid

適切なコマンドを実行して、postgresqlのバージョンが9.4ではないことがわかりました。

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

そのため、単にpostgresqlを9.4にアップグレードする必要がありました。

ちなみに私は この記事 に従ってアップグレードを行いましたが、非常に便利でした。

今:

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

これが同じ状況の誰かを助けることを願っています。

66
medBouzid