Re: libc to libicu via pg_dump/pg_restore? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: libc to libicu via pg_dump/pg_restore?
Date
Msg-id 187f2c5d-f268-4596-bb63-c94790ae761d@aklaver.com
Whole thread Raw
In response to libc to libicu via pg_dump/pg_restore?  (Paul Foerster <paul.foerster@gmail.com>)
List pgsql-general
On 2/6/25 01:04, Paul Foerster wrote:
> Hi,
> 

Comments inline.

> I have a problem which I don't understand. I have and do:
> 
> 
> instance a, libc based, PostgreSQL 15.10:
> 
> mydb=# \l mydb
>                                                            List of databases
>   Name |  Owner  | Encoding |   Collate   |    Ctype    | ICU Locale | Locale Provider | Access privileges
> ------+---------+----------+-------------+-------------+------------+-----------------+-------------------
>   mydb | my_user | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            |
> 
> $ pg_dump -Fc -Z1 -b mydb -f mydb.dump.gz
> $ ls -l mydb.dump.gz
> -rw------- 1 postgres postgres 14660308577 Feb  6 08:45 mydb.dump.gz
> 
> 
> instance b, libicu based, PostgreSQL 17.2:
> $ psql postgres
> 
> # create database mydb;
> # \l mydb
>                                                                List of databases
>   Name |   Owner  | Encoding | Locale Provider |   Collate   |    Ctype    | Locale | ICU Rules | Access privileges
> ------+----------+----------+-----------------+-------------+-------------+--------+-----------+-------------------
>   mydb | postgres | UTF8     | icu             | en_US.UTF-8 | en_US.UTF-8 | en-US  |           |
> 
> $ pg_restore -cC --if-exists --disable-triggers -d mydb mydb.dump.gz

I would start by doing:

1) Log into postgres database and do:

  a) DROP DATABASE mydb;
  b) CREATE DATABASE mydb <options>;

2) pg_restore -d mydb mydb.dump.gz


> pg_restore: error: could not execute query: ERROR:  insert or update on table "table_1" violates foreign key
constraint"..._fk"
 
> DETAIL:  Key (dokument_id)=(1000033680) is not present in table "...".

Is dokument_id an integer field?

> Command was: ALTER TABLE ONLY myschema.table
>     ADD CONSTRAINT table_fk FOREIGN KEY (dokument_id) REFERENCES myschema.dokument(id);
> 
> 
> pg_restore: error: could not execute query: ERROR:  insert or update on table "table_2" violates foreign key
constraint"..._fk"
 
> DETAIL:  Key (dokument_id)=(1000033740) is not present in table "dokument".
> Command was: ALTER TABLE ONLY vostra2_str.nen_dokument
>     ADD CONSTRAINT table_fk FOREIGN KEY (dokument_id) REFERENCES myschema.dokument(id);
> 
> 

> 
> What am I doing wrong or how can I better achieve that? Any help would be appreciated.

In a follow post you said:

"Everything works for all databases. Only this one has that problem."

Do you mean you made the same libc --> icu change on the other databases 
with no errors?

> 
> Thanks in advance.
> 
> Paul
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: How to perform a long running dry run transaction without blocking
Next
From: Adrian Klaver
Date:
Subject: Re: How to perform a long running dry run transaction without blocking