PostgreSQL - export/import bazy - błąd invalid byte sequence for encoding "UTF8": 0xff

0

Witam

Wyeksportowałem bazę danych posgresql za pomocą polecenia

pg_dump dbname > dump.sql

Przy próbie wgrania bazy na serwer produkcyjny (jeśli ma to znaczenie korzystam z phpPgAdmin) otrzymuję błąd

testowa2_dump:8: ERROR: invalid byte sequence for encoding "UTF8": 0xff

Baza jest tworzona w środowisku testowym na Windowsie. Domyślam się, że problem leży właśnie w systemie operacyjnym ale nie mam pojęcia jak sobie z tym poradzić. Dodam, że jakiś czas temu w ten sam sposób wyeksportowałem bazę i udało się ją wgrać na serwer. Teraz widocznie po dodaniu nowych danych pojawiają się jakieś konflikty. Nie wiem jednak jak to zlokalizować. Co oznacza cyfra 8 po testowa2_dump ?

0

importujesz do istniejącej bazy czy masz w eksporcie tworzenie? Jeśli do istniejącej to najprawdopodobniej masz w niej złe kodowanie

0
abrakadaber napisał(a):

importujesz do istniejącej bazy czy masz w eksporcie tworzenie? Jeśli do istniejącej to najprawdopodobniej masz w niej złe kodowanie

Do istniejącej z kodowaniem: UTF-8. Dokładnie w phpPgAdmin mam Kodowanie: UTF, Character Type: en_US.UTF-8
W pliku wyeksportowanej bazy danych (plik .sql) mam:

SET client_encoding = 'UTF8';

ale znajduję tam np. coś takiego:

6	Tytół strony	gAJYFwAAAE5hamxlcHN6eSBrYXRhbG9nIHN0cm9ucQAu
0

A jakie masz kodowanie PLIKU wynikowego?

0
Marcin.Miga napisał(a):

A jakie masz kodowanie PLIKU wynikowego?

Heh. I tu był cały myk. Zapisałem jeszcze raz plik w kodowaniu UTF8 i poszło...;) Dzięki wielkie.
Mam jeszcze pytanie odnośnie samego wykonania sqla. Otrzymałem masę błędów przy imporcie, ale wygląda na to, że wszystko jest ok. Tabele są, wartości są ok. Co oznaczają poszczególne błędy? Poniżej wklejam całość:

SET
SET
baza_kopia2.sql:10: ERROR: unrecognized configuration parameter "idle_in_transaction_session_timeout"
SET
SET
SET
SET
baza_kopia2.sql:15: ERROR: unrecognized configuration parameter "row_security"
CREATE EXTENSION
baza_kopia2.sql:28: ERROR: must be owner of extension plpgsql
SET
SET
SET
CREATE TABLE
baza_kopia2.sql:72: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:86: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:105: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:119: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:139: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:153: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:174: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:188: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:216: ERROR: role "jundymek" does not exist
CREATE TABLE
baza_kopia2.sql:229: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:243: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE SEQUENCE
baza_kopia2.sql:264: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:284: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:298: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:318: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:332: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:358: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:372: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:392: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:406: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:427: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:441: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:461: ERROR: role "jundymek" does not exist
CREATE TABLE
baza_kopia2.sql:474: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:488: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:511: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:525: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:552: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:566: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:602: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:616: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
CREATE TABLE
baza_kopia2.sql:637: ERROR: role "jundymek" does not exist
CREATE SEQUENCE
baza_kopia2.sql:651: ERROR: role "jundymek" does not exist
ALTER SEQUENCE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
setval
2

1 wiersz(y)
setval
1

1 wiersz(y)
setval
1

1 wiersz(y)
setval
45

1 wiersz(y)
setval
1

1 wiersz(y)
setval
3

1 wiersz(y)
setval
2

1 wiersz(y)
setval
30

1 wiersz(y)
setval
24

1 wiersz(y)
setval
15

1 wiersz(y)
setval
19

1 wiersz(y)
setval
1

1 wiersz(y)
setval
4

1 wiersz(y)
setval
2

1 wiersz(y)
setval
3

1 wiersz(y)
setval
10

1 wiersz(y)
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
CREATE INDEX
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
Całkowity czas pracy: 891.844 ms.

Polecenie SQL zostało wykonane.

EDIT: okazało się jeszcze, że powershell i cmd w windowsie nie daje takich samych wyników przy wykonywaniu poleceń postgresql. Wcześniej polecenie

pg_dump testowa2 > baza_kopia3.sql

wykonywałem w powershellu i pojawiał się błąd kodowania (zresztą import który opisałem zadziałał, ale w bazie były krzaczki zamiast polskich liter). Wykonałem to samo polecenie korzystając z cmd i wszystko zadziałało bez błędów kodowania (wymienione wyżej błędy pojawiły się również przy imporcie, ale baza wydaje się poprawna).

0

że nie masz użytkownika jundymek w docelowej bazie

0

A jeszcze co do EXTENSION. Prawdopodobnie nie dodał tobie plpgsql do bazy. Więc wszystkie procedury/funkcje etc, które były z użyciem plpgsql również nie zostały zaimportowane. I chyba nawet wtedy pg_restore błędu nie zwraca... Kiedys się na tym przejechałem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1