2016-03-21 102 views
0

我無法恢復數據庫腳本。Postgresql數據恢復編碼

我按照不同的職位,這是我到目前爲止已經做了解決這個問題:

1-轉儲UTF-8舊數據庫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-卸下舊數據庫

DROP DATABASE database_name; 

3-作爲LATIN9創建新的數據庫:

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

4-我試圖恢復與下一個命令的第一個步驟中創建的腳本LATIN9:

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

然後我得到的錯誤信息:

PSQL:FATAL:WIN1252之間的轉換和LATIN9不支持

我不明白,腳本已經是LATIN9 !!!這是怎麼回事? 我想補充一點,我試圖用這個來存檔,就是把我當前的UTF-8數據庫改成LATIN9。

回答

0

爲了使其工作我改變步驟1個4 這都與修正步驟:

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"