大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

【ポートフォリオ ♯4】CSVファイルのデータをテーブルに挿入

今回は「初めてのポートフォリオ作成」の#4です。

 

過去の日記はこちら

初めてのポートフォリオ作成 #3.5 - 大田区から発信するゆるゆる日記

初めてのポートフォリオ作成 #3 - 大田区から発信するゆるゆる日記

初めてのポートフォリオ作成 #2.5 - 大田区から発信するゆるゆる日記

初めてのポートフォリオ作成 #2 - 大田区から発信するゆるゆる日記

初めてのポートフォリオ作成 #1 - 大田区から発信するゆるゆる日記

初めてのポートフォリオ作成 #0 - 大田区から発信するゆるゆる日記

 

 

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。 

【目次】

環境

rails 5.2.3

ruby 2.6.3

MySQL

 

やりたいこと

CSVファイルのデータをテーブルに挿入したい。

 

CSVファイルを準備

CSVファイルにデータを準備します。

テーブル構造と同じようにデータを入力します。

カラム名とidカラムの記述は必要ありません。

 

CSVファイルは、アプリのdb/csvフォルダ内にコピペします。

 

seeds.rbを編集

アプリのdbフォルダ内にあるseeds.rbファイルを編集する。

db/seeds.rb

require "csv"

CSV.foreach('db/csv/file_name.csv', encoding: 'Shift_JIS:UTF-8') do |row|

TABLE_NAME.create(:building_type => row[0])

end

CSV.foreach('db/csv/file2_name.csv', encoding: 'Shift_JIS:UTF-8') do |row|

TABLE2_NAME.create(:building_type => row[0])

end

 

rails db:seedを実行 

$ rails db:seed

実行後に、別テーブルにもデータを挿入したい場合は、実行したseeds.rbのコードはコメントアウトしておく。

 

コメントアウトしないと、同じ作業が実行され、もう一度同じデータが追加されることになる。

 

今後に向けて

herokuのMySQLにもCSVファイルからデータを挿入しようとしたら、n+1問題が発生しているっぽい。

 

あと、無料枠で対応できないデータ量を挿入してしまい、エラーが出てる。

 

近日中にどうにかしよう。