Обсуждение: 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
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
> 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