質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

2回答

3725閲覧

windows機からheroku postgresにinsertしたい

b_kazu

総合スコア26

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2017/08/31 07:08

編集2017/09/01 00:54

普段はimacを利用しています。
今回、windows10のpowershellを使って、Heroku postgreSQLにsqlファイルを読み込まそうとしたところ、
ERROR: invalid byte sequence for encoding "SJIS": 0x84 0x27
というエラーになりました。

sqlファイルはutf-8、LFで作成。
powershellのエンコーディングはutf-8に設定しています。

調べてみても解決策が見つからないので、こちらで相談します。
よろしくお願い致します。

やっていること。

heroku login heroku pg:psql --app myapp_name database myapp_name::DATABASE=> \i myfile_name.sql # 下記のエラーになる psql:myfile_name.sql:60: ERROR: invalid byte sequence for encoding "SJIS": 0x84 0x27

追記
コマンドプロンプトでも同じ結果になります。
imac(OSX)からは同じsqlファイルを上記のやり方でinsertできます。

その後試したこと

heroku postgresに接続後、

\encoding utf8

で設定を変更したのちに読み込ませてみたところ、

psql:myfile_name.sql:56: ERROR: invalid input syntax for integer: ""

というエラーになります。

sqlファイルをShiftJISで保存し直してから再試行しても(LF、CRLF二つとも)、同じくinteger: ""のエラーになります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/31 08:17 編集

heroku側のpostgresに接続した上で、`\encoding`を実行するとそのコマンドの結果はどうなりますか?
b_kazu

2017/08/31 09:47

SJIS と出ます。
b_kazu

2017/09/01 00:26

コメントありがとうございます。\encoding utf8でencodingを変更してみました。すると今度は ERROR: invalid input syntax for integer: "" というエラーになりました。同じsqlファイルをimac(OSX)からならinsertできるのでファイルの作り方(カラム定義等)は問題ないと思います。
b_kazu

2017/09/01 02:55

TKatayamaさん、解決しました。\encoding utf8 の設定変更でinsertできました。ファイルによって成功する、しないがあるので、ファイルをあらためて調べてみます。ありがとうございました。
guest

回答2

0

ベストアンサー

クライアントエンコーディングがSJISになっているかと思います。
SQLを実行する前に\encoding utf8として解決しないでしょうか。

heroku login heroku pg:psql --app myapp_name database myapp_name::DATABASE=> \encoding utf8 myapp_name::DATABASE=> \i myfile_name.sql

または、myfile_name.sqlをSJISに変換した上で実行してみてください。

参考: https://kenpg.bitbucket.io/blog/201601/12.html

投稿2017/08/31 11:24

tsuemura

総合スコア663

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

b_kazu

2017/09/01 00:24

回答ありがとうございます。\encoding utf8、sqlファイルのSJIS変換(LF、CRLFの二つ)とも試したところ、今度は ERROR: invalid input syntax for integer: "" というエラーになりました。同じsqlファイルをimac(OSX)からはinsertできるのでファイルの作り方(カラム定義等)は問題ないと思います。powershell、コマンドプロンプトともに同じ結果でした。
tsuemura

2017/09/01 00:34

integer型のカラムに空文字を入れようとしてエラーになっているようです。 myfile_name.sqlの内容が分かればアドバイスが出来るかもしれませんが、今はそれ以上の事はわかりません。申し訳ないです。
b_kazu

2017/09/01 02:46

解決しました。\encoding utf8 で設定変更後、今までと別のsqlファイルで試したところinsertできました。ただ、前のファイルもmacからはinsertできたので、どこが問題なのか気になります。エラーになったファイルはあらためて調べ直してみます。ありがとうございました。
guest

0

解決策ではありませんが

あたりが参考になるのではないでしょうか。

また、
・imac側で、psql接続し、そのSQLファイルを読み込む場合は問題なく動くのか
・windows10でそのSQLファイルはutf-8で認識されているのか
・windows10から、powershellを使わずに、psql接続して、そのSQLファイルは読み込むことができうのか
といった情報も載せておいた方が良いのでは。

投稿2017/08/31 08:13

kuniku

総合スコア253

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

b_kazu

2017/09/01 00:57

回答ありがとうございます。参考ブログを読み込んでみます。 質問に追記してみました。
b_kazu

2017/09/01 02:52

解決しました。\encoding utf8 の設定変更でinsertできました。ファイルによって成功する、しないがあるので、ファイルをあらためて調べてみます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問