2013-10-17 11 views
6

jak mogę ją zmienić Układanie, ctype do - en_IN z en_US.UTF-8Zmień Sortowanie bazy danych, typu C w PostgreSQL

       List of databases 
    Name | Owner | Encoding | Collation | Ctype | Access privileges 
-----------+----------+----------+-------------+-------------+----------------------- 
postgres | postgres | UTF8  | en_US.UTF-8 | en_US.UTF-8 | 
template0 | postgres | UTF8  | en_US.UTF-8 | en_US.UTF-8 | =c/postgres 
                  : postgres=CTc/postgres 
template1 | postgres | UTF8  | en_US.UTF-8 | en_US.UTF-8 | =c/postgres 
                  : postgres=CTc/postgres 

mojego obecnego postgresversion jest 8,4 ive zainstalowany przy użyciu

sudo apt-get install postgresql-8.4 postgresql-contrib-8.4 

robię to w mój serwer ubuntu amazon ec2

+0

Nie można zmienić sortowania bazy danych. Musisz ponownie utworzyć (zrzutu/przeładować) bazę danych z nowym zestawieniem –

+0

, gdy próbuję utworzyć bazę danych z en_IN nie mogącą tego zrobić :( –

+0

obecnie używam mojego własnego systemu lokalnego jako serwera .. i jest już uruchomiony Teraz mam nową instancję Ubuntu 12.04 amazon ec2 z Amazon i próbuję przenieść mój serwer, więc jak to zrobić, powinienem to zrobić? plz –

Odpowiedz

6

Moje zalecenie:

  1. wziąć pg_dumpall

  2. ponownie zainicjować klaster db, upewniając się, że informacja jest prawidłowa locale

  3. przywrócić zrzutu.

I odkryli, że czasami jest to możliwe, że może trzeba by stworzyć DB z szablonu template0 (-t template0 od bash lub WITH TEMPLATE template0 z psql), aby użyć ustawień regionalnych nie startowych-DB.

+0

Nie rozumiem punktu 2 –

+0

Na pewno będziesz chciał przeczytać dokumenty i zobacz, jak ustawione są twoje ustawienia regionalne, ale możesz ogólnie: 'initdb --lc-collate en_IN --lc-ctype en_IN -D .... –

3

Nie trzeba ponownie tworzyć całego klastra bazy danych. Musisz jednak odtworzyć bazę danych.

Run createdb z tych opcji (man createdb):

-E encoding, --encoding=encoding 
     Specifies the character encoding scheme to be used in this 
     database. The character sets supported by the PostgreSQL server 
     are described in Section 22.3.1, “Supported Character Sets”, in 
     the documentation. 

    -l locale, --locale=locale 
     Specifies the locale to be used in this database. This is 
     equivalent to specifying both --lc-collate and --lc-ctype. 

    --lc-collate=locale 
     Specifies the LC_COLLATE setting to be used in this database. 

    --lc-ctype=locale 
     Specifies the LC_CTYPE setting to be used in this database. 

Wydaje się, że naprawdę nie można zmienić sortowanie istniejącej bazy danych:

=> ALTER DATABASE dbname SET "Collate" To Russian; 
ERROR: unrecognized configuration parameter "Collate" 

pamiętać, że można ustawić dla sortowania tabela lub kolumna, zobacz dobre zbiory danych w PostgreSQL.

Powiązane problemy