学習記録

アウトプット用に作りました

CSVを使ってrails db:seedで初期データを登録

CSVとは

CSVとは「カンマで値を区切ったもの」が入っているファイルで、カンマ区切りファイルともいいます。ファイルの拡張子は .csvです。実際のファイルの中身は次のようになっています。 f:id:kimura34:20210427210812p:plain

このファイルとrails: db:seedを使って大量の初期データをデータベースに登録する方法を説明していきます。

使用方法

NumbersやExcelなどのテキストエディタを使用して、データを挿入するテーブルを作成します。私はNumbersを使用しています。 f:id:kimura34:20210427211448p:plain

ファイルの一番上の行ではカラム名を入れます。 IDは必ず設定しましょう。データはコピーペーストでテーブルに入れることができるのでとても簡単です!

データの入力が終わったらファイルを下記の手順でcsv形式にして保存します。ファイルの保存先はrailsアプリのdbディレクトリ配下に保存します。 f:id:kimura34:20210427212203p:plain


次に作成したCSVファイルを使ってseeds.rbファイルを編集していきます。

seeds.rb

require "csv"

CSV.foreach('db/dramas.csv', headers: true) do |row|
  Drama.create(
  # カラム名: row['CSVファイルの列名'],
    published_at: row['published_at'],
    name: row['name'],
  )
end

CSVファイルを作成しseeds.rbファイルに記述ができたらdデータベースにseedsファイルの情報を入れるためにターミナルで下記のコマンドを入力します。

$ rails db:seed

rails consoleを行うことで、データベースに大量のデータが保存されたのがわかります。 f:id:kimura34:20210427213656p:plain