Re: Upgrading from postgresql 11 to postgresql 17 using pg_upgrade - Mailing list pgsql-admin

From Holger Jakobs
Subject Re: Upgrading from postgresql 11 to postgresql 17 using pg_upgrade
Date
Msg-id b57940e8-0696-43d0-aeb8-61bd9a71eb3e@jakobs.com
Whole thread Raw
In response to Upgrading from postgresql 11 to postgresql 17 using pg_upgrade  (Muhammet Kurtoğlu <muhammet.kurtoglu@bisoft.com.tr>)
List pgsql-admin
Am 18.09.25 um 14:11 schrieb Muhammet Kurtoğlu:
Hi
 during upgrade we encounter 

pg_restore: error: could not execute query: ERROR: encoding "UTF8" does not match locale "tr_TR.iso88599" DETAIL: The chosen LC_CTYPE setting requires encoding "LATIN5". Command was: CREATE DATABASE "zzz" WITH TEMPLATE = template0 OID = 84322 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'tr_TR.iso88599' TABLESPACE = "zz";

postgresql 11 database list


image.png

please help


--

Hi Muhammet,

You aren't using pg_upgrade as you are saying in the subject line, but pg_restore for restoring, which means you did a pg_dump -Fc before.

In order to avoid the errors you have encountered, the safest bet ist ALWAYS to use UTF8. Use UTF8 as encoding for ALL databases, and Collate and CType language_country.UTF-8, in your case tr_TR.UTF-8. Don't bother with the outdated iso8859x character sets.

UTF8 can handle all characters from all languages, special characters, emojis and so on. 

Make sure that the database cluster also has been initialised with the correct encoding. Check whether the encoding of template1 database is the same. Otherwise, run the initdb command again with correct settings, see manpage of initdb.

This command works nonetheless

create database kurt with encoding = utf8 locale = tr_TR lc_collate = 'tr_TR.UTF-8' lc_ctype = 'tr_TR.UTF-8' locale_provider = libc template = template0;

Selamlar

Holger

--

Holger Jakobs, Bergisch Gladbach, Germany

Attachment

pgsql-admin by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: pgping?
Next
From: concur dev
Date:
Subject: Re: Upgrading from postgresql 11 to postgresql 17 using pg_upgrade