インポート中に次のエラーが発生します。
pg_restore: [archiver (db)] COPY failed for table "transaction_details": ERROR: invalid input syntax for type money: "$0.00"
restore
完了しましたが、transaction_details
テーブルが空です。これはHerokuのPostgreSQL Dumpデータベースです。
HerokuのPostgreSQLバージョンは9.3.15で、私のシステムでも同じです。
私が使用したコマンド:
pg_restore --verbose --clean --no-acl --no-owner -h localhost -U root -d database 577b86e3-8d96-4410-9b36-dd0f78cfe32f
誰かが解決策を提案できますか?
money
タイプに関するマニュアルには、ケースに関する正確なアドバイスがあります:
このデータ型の出力はロケールに依存するため、
money
データをlc_monetary
の設定が異なるデータベースにロードしても機能しない場合があります。問題を回避するには、ダンプを新しいデータベースに復元する前に、lc_monetary
が、ダンプされたデータベースと同じか同等の値であることを確認してください。
チェックする:
SHOW lc_monetary;
エラーメッセージの例の値('$0.00'
)は、(特に)デフォルト設定で機能します。
lc_monetary = 'C';
postgresql.conf
で設定し、リロードしてもう一度お試しください...
この特異な動作は、money
型が人気がない理由の1つです。