Thread: Cannot restore windows dump on linux

Cannot restore windows dump on linux

From
Date:

Hello,

 

I am using PostgreSQL 14.5

 

I tried to move a Linux database to Windows. Both identical version.

Linux dump successfully loaded on Windows system.

Reason for changing system didn’t work out and now I am trying to move it back because it has some modifications.

I just dumped a database backup on windows to a dump file. I see dump file contains “\r\n” as new line identifier (hence windows dump). Just to clarify, this is not \N character I am mixing.

When I try to restore windows dump on regular Linux system, I get a lot of errors and it stops at this one below where this is a pure data load position.

 

ERROR:  syntax error at or near "43589"

LINE 1: 43589 7102e523-f401-4cce-852d-e537f863886f…

 

I also tried to stop at first error when restoring, in this case it stops at below error

 

root@app:/home/ek# psql -v ON_ERROR_STOP=1 -U myuser -d mydb < last_backup.bak

SET

SET

SET

SET

SET

set_config

------------

 

(1 satır)

 

SET

SET

SET

SET

ERROR:  index "ix_xrates_date" does not exist

 

I searched the internet and I could not solve my problem.

 

How can I successfully dump on Widnows and restore on Linux?

 

Any help is appreciated.

 

Thanks & Regards,

Ertan

RE: Cannot restore windows dump on linux

From
Date:
Hello again,

While I was searching for a solution, I saw an example of manual running of
dump file within psql. Tried this and it did work just fine.

\connect mydb
\i last_backup.bak

Above two commands completed without any loading error at all.

Now I wonder why command line did not work.
Do let me know if there is a known reason, please.

Thanks & Regards,
Ertan


-----
From: ertan.kucukoglu@1nar.com.tr <ertan.kucukoglu@1nar.com.tr>
Sent: Wednesday, October 19, 2022 18:43
To: pgsql-general@lists.postgresql.org
Subject: Cannot restore windows dump on linux

Hello,

I am using PostgreSQL 14.5

I tried to move a Linux database to Windows. Both identical version.
Linux dump successfully loaded on Windows system.
Reason for changing system didn't work out and now I am trying to move it
back because it has some modifications.
I just dumped a database backup on windows to a dump file. I see dump file
contains "\r\n" as new line identifier (hence windows dump). Just to
clarify, this is not \N character I am mixing.
When I try to restore windows dump on regular Linux system, I get a lot of
errors and it stops at this one below where this is a pure data load
position.

ERROR:  syntax error at or near "43589"
LINE 1: 43589 7102e523-f401-4cce-852d-e537f863886f.

I also tried to stop at first error when restoring, in this case it stops at
below error

root@app:/home/ek# psql -v ON_ERROR_STOP=1 -U myuser -d mydb <
last_backup.bak
SET
SET
SET
SET
SET
set_config
------------

(1 satır)

SET
SET
SET
SET
ERROR:  index "ix_xrates_date" does not exist

I searched the internet and I could not solve my problem.

How can I successfully dump on Widnows and restore on Linux?

Any help is appreciated.

Thanks & Regards,
Ertan





Re: Cannot restore windows dump on linux

From
Erik Wienhold
Date:
> On 19/10/2022 17:43 CEST ertan.kucukoglu@1nar.com.tr wrote:
>
> I am using PostgreSQL 14.5
>
> I tried to move a Linux database to Windows. Both identical version.
> Linux dump successfully loaded on Windows system.
> Reason for changing system didn’t work out and now I am trying to move it back
> because it has some modifications.
> I just dumped a database backup on windows to a dump file. I see dump file
> contains “\r\n” as new line identifier (hence windows dump). Just to clarify,
> this is not \N character I am mixing.
> When I try to restore windows dump on regular Linux system, I get a lot of
> errors and it stops at this one below where this is a pure data load position.
>
> ERROR: syntax error at or near "43589"
> LINE 1: 43589 7102e523-f401-4cce-852d-e537f863886f…
>
> I also tried to stop at first error when restoring, in this case it stops at
> below error
>
> root@app:/home/ek# psql -v ON_ERROR_STOP=1 -U myuser -d mydb < last_backup.bak
> SET
> SET
> SET
> SET
> SET
> set_config
> ------------
>
> (1 satır)
>
> SET
> SET
> SET
> SET
> ERROR: index "ix_xrates_date" does not exist
>
> I searched the internet and I could not solve my problem.
>
> How can I successfully dump on Widnows and restore on Linux?

On Windows, did you run pg_dump with --file option or redirect the output to
a file?

    pg_dump --file last_backup.bak -U myuser mydb

vs.

    pg_dump -U myuser mydb > last_backup.bak

The redirect variant tripped me up before because Windows 10 writes the file as
UTF-16 which is not expected by psql.  I don't know if psql can be configured
to handle UTF-16.  The redirect is also the cause for CRLF line endings.

--
Erik