PostgreSQL 8.4'te Unicode veritabanlarını nasıl oluştururum?


14

Postgresql-8.4 paketini varsayılan seçeneklerle yükledim . Her şey iyi çalıştı, ancak unicode veritabanları oluşturmayı başaramıyorum:

-- This doesn't work
createdb test1 --encoding UNICODE

-- This works
createdb test2

Hata mesajı,

createdb: database creation failed: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) 

(afaik) Ben yeni db oluşturmak için bir şablon kullanmıyorum, ya da bir nedenden dolayı varsayılan "postgres" veritabanına atıfta bulunuyor çünkü biraz şaşırtıcı.

Veya belki bir .confdosyada bir ayar eksik ?

Yanıtlar:


13

Başvurduğu şablon template1, başka bir şablon belirtmezseniz örtük olarak kullanılır.

En hızlı çözüm, veritabanınızı template0bunun yerine kullanarak oluşturmanızdır createdb --template=template0.

Kümenizin tamamını daha mantıklı bir yerel ayarla bırakmak ve yeniden başlatmak isteyebilirsiniz. Muhtemelen işletim sisteminizi varsayılan olarak C yerel ayarını kullanacak şekilde ayarlamışsınızdır. Veritabanı sistemini aşağıdaki adımlarla yeniden başlatabilirsiniz:

sudo pg_dropcluster --stop 8.4 main
sudo pg_createcluster --locale=en_US.utf8 --start 8.4 main

Elbette, istediğiniz yerel ayarları kullanın.


Yerel ayarı değiştirmek için kümeyi bırakmak tam olarak aradığım şeydi, teşekkürler :)
wildpeaks

Adam, çok kazma sonra, bu da aradığını! Başka hiçbir şey PG'nin Ubuntu yerel ayarıyla çalışmasını, hatta değiştirmesini sağlayamaz. Ancak kümeyi UTF8 ile yeniden oluşturmak hile yaptı :). Şerefe!
lucasarruda

Kullanmak isteyebilirsiniz --locale=C.UTF-8(sisteminizde desteklenen yerel ayarları ile listele locale -a).
tricasse

3

belki kümeyi oluşturmak için önce yerel ayarı yapılandırmanız gerekir

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

Benim için işe yaradığını düşünüyorum!
alfonx

dpkg-reconfigure sudo gerektirir ...
Cerin

-1

Sanırım demek istediğin:

createdb test42 --encoding utf-8

İstediğinizi yapmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.