18

herokupgbackups-toolで作成されたデータベースバックアップを復元しようとしています。

URLを公開してバックアップをダウンロードします:

$ heroku pgbackups:url 'backup-name'

次のコマンドでdbを作成しました:

$ createdb 'dbname' -U postgres

そして、*。dumpファイルから復元しようとしました:

$ psql -U postgres -d 'dbname' -f *.dump

次のような構文エラーが発生します。

ERROR:  syntax error at or near "PGDMP"
...
ERROR:  invalid byte sequence for encoding "UTF8": 0x9d
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding"

さて、これはエンコーディングと関係がありますが、どうすれば解決できますか?

config/application.rbと私のpostgresサーバーの両方でエンコーディングがUTF-8に設定されています。database.ymlにはsqliteが設定されています(本番設定には触れていません)。Gemfileには次のようなものがあります。

gem 'pg'
4

1 に答える 1

54

私はマニュアルから直接答えを見つけました:

$ curl -o latest.dump `heroku pgbackups:url`

$ pg_restore --verbose --clean --no-acl --no-owner -h myhost -U myuser -d mydb latest.dump
于 2012-05-28T16:39:09.367 に答える