きっかけ
Herokuにデプロイしたアプリに、データを一気に追加したい。
そこで、MySQLWorkbenchからCSVファイルでのインポートを試みたが、何度やってもエラーで追加できない。
ちなみにその時のエラーはこれ。
unhandled expectation: 'cp932' codec can't decode byte 0x81 in position 61: illegal multibyte sequence
CSVファイルの文字形式がcp932になっていることが原因のようだが、何度元のCSVファイルを確認しても、UTF-8で出力している。
また、phpMyAdminで、同じCSVファイルからインポートすると、問題なくインポートできる状況。
解決?策
少し手間ではあるが、ローカルのphpMyAdminでインポートができることを利用し、今回はごり押しで解決していく。
使うのは、SQL文。
1)phpMyAdminで、テーブルをエクスポートする
Itemsのテーブルをエクスポートする。この時、SQL形式を選択しておく。
2)エクスポートしたSQLファイルを開く
3)開いたファイルの中から、インサートのSQL文をコピーする
この部分↓
--
-- テーブルのデータのダンプ `items`
--
INSERT INTO `items` (`カラム名`) VALUES
('データ1'),
('データ2');
4)SQL文を、MySQLWorkbenchで実行する
追加したいテーブルを選択。
おそらくこんな画面が表示される。
初めから書いてある、SQL文は不要なので削除する。
次に、コピーしたインサートのSQL文をペーストして、雷マークで実行!
※SQLのエラーなどは、下部のOutputの欄で確認できる。
さいごに
今回のは、解決策というか代替案で乗り切っている形になってしまった。
調べてできることはしたつもりだが、中々解決までの道筋は立たなかった。
Herokuでデプロイしたアプリを、phpMyAdminにつなげる方法も調べて試してみたが、上手くいかなかった。システムの根本の仕組みをよく理解してないのがいかんのかなぁ…。
また、今回のCSVでのエラーはメンターに見てもらったが解決に至らずだった。
ま、分からん問題をうんうん考え続けるより、代替案で形にするのも大事だとは思うので切り替えよう。
こちらの投稿は、素人ほぼ独学プロウラマーのメモ書き投稿のため、参考程度にご活用ください。
また、質問やアドバイスなどコメントいただけますと、大変ありがたいです。