Re: Restore Windows dump to Linux (locale issue)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ertan Küçükoglu <ertan(dot)kucukoglu(at)gmail(dot)com>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Restore Windows dump to Linux (locale issue)
Date: 2025-11-23 22:02:04
Message-ID: 811312.1763935324@sss.pgh.pa.us
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-general

=?UTF-8?B?RXJ0YW4gS8O8w6fDvGtvZ2x1?= <ertan(dot)kucukoglu(at)gmail(dot)com> writes:
> I am using PostgreSQL 18.1 on a Windows system.
> I need to move that database to a Linux system of the same version number.
> Windows system use locales name as tr-TR (this is UTF-8 locale)
> Linux system use locale name as tr_TR.UTF-8
> My cluster backup gives error at restore (I think because of that locale
> naming difference) as below
> psql:/db.dump:133: ERROR: invalid LC_COLLATE locale name: "tr-TR"

Edit the dump so that the databases are created with Linux-compatible
locale names. You should find lines like

CREATE DATABASE foo WITH TEMPLATE = template0 ENCODING = 'UTF-8' LOCALE_PROVIDER = libc LOCALE = 'tr-TR';

(details will vary depending on PG version) and changing the locale
strings ought to do the trick.

If the dump file is too big for your editor, consider splitting it
into schema-only and data-only dumps.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Brent Wood 2025-11-23 22:42:11 Re: Restore Windows dump to Linux (locale issue)
Previous Message Adrian Klaver 2025-11-23 21:49:55 Re: Restore Windows dump to Linux (locale issue)