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

rails -v 
Rails 4.2.0 

ich eine jsonb Säule durch Migration, wie dieRails und jsonb Typ "jsonb" existiert nicht

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

hinzugefügt bekomme ich diesen Fehler:

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

jede mögliche Hilfe? Ich habe einfach nicht 9.4 ist musste meine postgresql auf 9,4 Upgrade

+0

Ich habe dieses Problem neulich gesehen, scheint es gab keine Lösung für dieses Problem. Könntest du versuchen, auf 4.2.1 upzugraden oder deine Schienen herabzustufen? – argentum47

+0

@ argentum47 Ich denke, es ist meine Schuld, ich werde es reparieren und die Antwort posten. Danke. – medBo

Antwort

54

Nach etwas entdeckte ich, dass meine postgresql-Version, indem Sie den richtigen Befehl

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

So.

Übrigens folgte ich this article, um die Aktualisierung zu tun, die ich sehr praktisch fand.

Jetzt:

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

Hoffnung diese Hilfe jemand in der gleichen Situation.

+0

Richtig. Aktualisieren der Postgresql-Version hilft. Diese [andere Upgrade-Anleitung] (https://medium.com/@tk512/upgrading-postgresql-from-9-3-to-9-4-on-ubuntu-14-04-lts-2b4ddcd26535) funktioniert ebenfalls. – Francisco

+0

Das Handbuch ist für die meisten Debian-Systeme gedacht - aber für Ubuntu 14.04 (das nicht über das Postgres-9.4-Paket/Repository verfügt) muss noch etwas mehr getan werden. Suchen Sie bei älteren Versionen von Ubuntu auf askubuntu.com, da dort eine Vielzahl von Lösungen vorhanden ist. – Todd

Verwandte Themen