Postgres 从 .dump 文件恢复:编码字节序列无效 "UTF8"
Postgres restore from .dump file: Invalid byte sequence for encoding "UTF8"
我已经使用
下载了我的 heroku 数据库的最新副本
$ curl -o latest.dump `heroku pg:backups public-url --app myapp`
这会在我的本地计算机上生成一个具有以下类型的文件:
$ file db/latest.dump
db/latest.dump: PostgreSQL custom database dump - v1.12-0
我正在尝试使用 psql 将其导入我的本地 Postgres 数据库 (my_db)。但是,我遇到了很多错误:
$ psql my_db < db/latest.dump
...
psql:db/latest.dump:119425: invalid command \?A~??ܣb?{#?+????LS??
psql:db/latest.dump:119426: invalid command \D%!ѡ/F??g????A???dC????|2?M?$?8GTJ??c?E?;??֛Sh??S?[NP?f?2?+H?W????k
... [thousands of lines]
psql:db/latest.dump:261719: ERROR: invalid byte sequence for encoding "UTF8": 0xba
命令 psql -f db/latest.dump my_db
以同样的方式失败。
要将此文件本地导入具有相同架构等的新数据库,需要做什么?
我能够使用pg_restore
解决问题:
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d my_db db/latest.dump
我已经使用
下载了我的 heroku 数据库的最新副本$ curl -o latest.dump `heroku pg:backups public-url --app myapp`
这会在我的本地计算机上生成一个具有以下类型的文件:
$ file db/latest.dump
db/latest.dump: PostgreSQL custom database dump - v1.12-0
我正在尝试使用 psql 将其导入我的本地 Postgres 数据库 (my_db)。但是,我遇到了很多错误:
$ psql my_db < db/latest.dump
...
psql:db/latest.dump:119425: invalid command \?A~??ܣb?{#?+????LS??
psql:db/latest.dump:119426: invalid command \D%!ѡ/F??g????A???dC????|2?M?$?8GTJ??c?E?;??֛Sh??S?[NP?f?2?+H?W????k
... [thousands of lines]
psql:db/latest.dump:261719: ERROR: invalid byte sequence for encoding "UTF8": 0xba
命令 psql -f db/latest.dump my_db
以同样的方式失败。
要将此文件本地导入具有相同架构等的新数据库,需要做什么?
我能够使用pg_restore
解决问题:
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d my_db db/latest.dump