2014-07-06 51 views
9

Yakın bir zamanda, uzak bir konumdayım ve db geçişi sırasında yerel Ubuntu kutusuna bir projeyi klonladım, aşağıdaki hatayı alıyorum:Hata alıyorum - "json" yok - Postgresql sırasında rake db geçişi

add_column :table, :column, :json 

Bu göç işyerinde Mac'lerde, ama burada çalışmıyor: Var benim tablolarda

PG::UndefinedObject: ERROR: type "json" does not exist 

birkaç sütunlar. PostgreSQL 9.3.4'e yükseltmeyi denedim, ancak sorun hala devam ediyor. Ayrıca sudo apt-get upgrade postgresql denedim ve hala problem devam ediyor.

Yakut sürüm 2.1.0 Raylar sürümü hala eski sürüme bağlantı kurduğunu 4.0.3

+0

bunu gördünüz mü: http://stackoverflow.com/questions/23284164/rails-3-migration-error-when-using-json-as-a-column-type-in-an-activerecord-bac – xlembouras

+0

Hayır. Ama bu problemin çözümü şu anda kurulmuş olan şemaya sahip olduğum. Ayrıca, hiçbir yanıt vermediği gibi, application.rb'yi değiştirmeyi denedim. – earth2jason

+2

'json' veri türü Postgres 9.2 ile tanıtıldı. Kesinlikle v9.3.1 ile çalışmalıdır. Bağlandığınız Postgres db kümesinin * gerçek * sürümünü açıklamadınız. SELECT version() 'için ne elde edersiniz? –

cevap

19

I have tried upgrading to PostgreSQL 9.3.4, but the issue still persists

Büyük olasılıkla olmasıdır. SELECT version()'u deneyin.

apt-get'dan bahsettiğiniz için muhtemelen Debian veya Ubuntu'dasınız demektir. Bu, birden çok PostgreSQL yüklemesini paralel olarak sağlamak için pg_wrapper kullanın. Her biri farklı bir port numarası alır. İlk yükleme varsayılan bağlantı noktası 5432'yi alır. Sonraki yüklemeler daha yüksek bağlantı noktaları alır.

Yüklemeyi pg_lsclusters ile görüntüleyebilirsiniz. Büyük olasılıkla 9.3 yüklemeniz 9433 numaralı bağlantı noktasındadır ve bu bağlantı noktasına bağlanmak için database.yml (Rails kullandığınızdan) değiştirmeniz gerekir.

+1

Aslında, bu, 9.1'in çevrimiçi olduğunu ve 9.3'ün olmadığını anlamamı sağladı. 9.3 aşağıdaydı. – earth2jason

5

Herhangi bir nedenle bu sorunla karşılaşırsanız, 9.3 sürümünüz aslında çalışmıyor.

Ben çok yararlı için bu bağlantıyı bulundu:

sudo service postgresql stop 

ve oradan tüm komutları ran: Ben komutuyla başlayan

http://nixmash.com/postgresql/upgrading-postgresql-9-1-to-9-3-in-ubuntu/

. Her şey şimdi iyi çalışıyor.

+0

Ubuntu 12.04 LTS için - 9.1'den 9.3'e yükseltmek için https://gist.github.com/mdpatrick/8895813 – poorva

İlgili konular