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

rails -v 
Rails 4.2.0 

Tôi đã thêm một cột jsonb thông qua di cư như thếRails và jsonb gõ "jsonb" không tồn tại

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

tôi nhận được lỗi này:

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

bất kỳ sự giúp đỡ?

+0

tôi cũng thấy vấn đề này vào ngày khác, dường như chưa có giải pháp nào cho vấn đề này. bạn có thể thử nâng cấp lên 4.2.1 hoặc hạ cấp đường ray của bạn – argentum47

+0

@ argentum47 Tôi nghĩ rằng đó là lỗi của tôi, tôi sẽ sửa lỗi và đăng câu trả lời. cảm ơn bạn. – medBo

Trả lời

54

Sau khi nhìn xung quanh tôi phát hiện ra rằng phiên bản postgresql của tôi không 9.4 là bằng cách chạy lệnh ngay

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

Vì vậy, tôi đã có đơn giản để nâng cấp postgresql của tôi để 9.4.

Bằng cách tôi theo dõi this article để thực hiện nâng cấp mà tôi thấy rất tiện dụng.

Bây giờ là:

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

Hope trợ giúp này ai đó trong tình cảnh tương tự.

+0

Chính xác. Nâng cấp phiên bản postgresql giúp. [Hướng dẫn nâng cấp khác] này (https://medium.com/@tk512/upgrading-postgresql-from-9-3-to-9-4-on-ubuntu-14-04-lts-2b4ddcd26535) cũng hoạt động. – Francisco

+0

Hướng dẫn dành cho hầu hết các hệ thống debian - nhưng có một chút cần phải thực hiện đối với Ubuntu 14.04 (không có gói/kho lưu trữ postgres-9.4). Đối với các phiên bản Ubuntu cũ hơn, hãy tìm kiếm trên askubuntu.com vì có rất nhiều giải pháp ở đó. – Todd

Các vấn đề liên quan