Postgresql数据恢复编码
Postgresql data recovery encoding
我无法恢复数据库脚本。
我关注了不同的帖子,这是我迄今为止为解决这个问题所做的工作:
1- 将 UTF-8 旧数据库转储到 LATIN9:
"C:\Program Files (x86)\pgAdmin III.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.22\psql.exe" -U username-d database_name -f database_name.sql
然后我收到错误消息:
psql: FATAL: conversion between WIN1252 and LATIN9 is not supported
我不明白,剧本已经是LATIN9了!!!这是怎么回事?
我想补充一点,我试图用这个存档的是将我当前的 UTF-8 数据库更改为 LATIN9。
为了让它工作,我更改了步骤 1 和 4。
这是包含更正的所有步骤:
1-
"C:\Program Files (x86)\pgAdmin III.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.22\pg_restore" --host localhost --port 5432 --username "postgres" --dbname "database_name" --role "postgres" --no-password --verbose "database_name.backup"
我无法恢复数据库脚本。
我关注了不同的帖子,这是我迄今为止为解决这个问题所做的工作:
1- 将 UTF-8 旧数据库转储到 LATIN9:
"C:\Program Files (x86)\pgAdmin III.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.22\psql.exe" -U username-d database_name -f database_name.sql
然后我收到错误消息:
psql: FATAL: conversion between WIN1252 and LATIN9 is not supported
我不明白,剧本已经是LATIN9了!!!这是怎么回事? 我想补充一点,我试图用这个存档的是将我当前的 UTF-8 数据库更改为 LATIN9。
为了让它工作,我更改了步骤 1 和 4。 这是包含更正的所有步骤:
1-
"C:\Program Files (x86)\pgAdmin III.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.22\pg_restore" --host localhost --port 5432 --username "postgres" --dbname "database_name" --role "postgres" --no-password --verbose "database_name.backup"