2016-03-21 3 views
0

Ich kann ein Datenbankskript nicht wiederherstellen.Postgresql Datenwiederherstellung Codierung

Ich habe verschiedene Beiträge gefolgt, und das ist, was ich bisher getan habe, dieses Problem zu lösen:

1- Dump UTF-8 alte Datenbank zu LATIN9:

"C:\Program Files (x86)\pgAdmin III\1.22\pg_dump" -E LATIN9 --no-owner --no-acl -U postgres -W -h localhost -p 5432 database_name > database_name.sql 

2- Entfernen Sie die alte

Datenbank
DROP DATABASE database_name; 

3- erstellen Sie die neue Datenbank als LATIN9:

CREATE DATABASE "database_name" WITH ENCODING='LATIN9' OWNER=username TEMPLATE=template0 LC_COLLATE='C' LC_CTYPE='C' CONNECTION LIMIT=-1; 

4- Ich versuche, das LATIN9 Skript im ersten Schritt mit dem nächsten Befehl erstellt wiederherzustellen:

"C:\Program Files (x86)\pgAdmin III\1.22\psql.exe" -U username-d database_name -f database_name.sql 

Und dann bekomme ich die Fehlermeldung:

psql: FATAL: Umwandlung zwischen WIN1252 und LATIN9 wird nicht unterstützt

Ich verstehe nicht, das Skript ist bereits LATIN9 !!! Was ist los? Ich möchte hinzufügen, dass das, was ich versuche zu archivieren, ist, meine aktuelle UTF-8-Datenbank zu LATIN9 zu ändern.

Antwort

0

Um es ich die Stufen geändert 1 und 4 Dies sind zu machen arbeiten alle Schritte mit den Korrekturen:

1-

"C:\Program Files (x86)\pgAdmin III\1.22\pg_dump" --host localhost --port 5432 --username "postgres" --role "postgres" --no-password --format tar --blobs --encoding LATIN9 --verbose --file "database_name.backup" "database_name" 

2-

DROP DATABASE database_name; 

3-

CREATE DATABASE "database_name" WITH ENCODING='LATIN9' OWNER=username TEMPLATE=template0 LC_COLLATE='C' LC_CTYPE='C' CONNECTION LIMIT=-1; 

4-

"C:\Program Files (x86)\pgAdmin III\1.22\pg_restore" --host localhost --port 5432 --username "postgres" --dbname "database_name" --role "postgres" --no-password --verbose "database_name.backup"