Skip to content

CSV データインポート

CSV ファイルからデータベースにデータをインポートする Rake タスクです。

Terminal window
rails csv:import[ファイルパス,テーブル名,モード]
  • ファイルパス (必須): インポートする CSV ファイルのパス
  • テーブル名 (必須): インポート先のテーブル名(例: authors, books
  • モード (オプション): update または skip(デフォルト: update
  • update: ID が存在する場合は既存のレコードを上書き
  • skip: ID が存在する場合はスキップ(新規レコードのみ作成)
  • 第 1 行目をヘッダー(カラム名)として使用
  • ヘッダーはデータベースのカラム名と一致させる
  • id カラムを含めると、既存レコードの更新/スキップが可能
id,name
1,著者A
2,著者B
3,著者C

新規インポート(update モード)

Section titled “新規インポート(update モード)”
Terminal window
rails csv:import[data/authors.csv,authors,update]

既存の ID は上書きされ、新しい ID は作成されます。

新規レコードのみ追加(skip モード)

Section titled “新規レコードのみ追加(skip モード)”
Terminal window
rails csv:import[data/authors.csv,authors,skip]

既存の ID はスキップされ、新しい ID のみ作成されます。

モード省略(デフォルトは update)

Section titled “モード省略(デフォルトは update)”
Terminal window
rails csv:import[data/authors.csv,authors]

インポート完了時に以下の情報が表示されます:

Import completed:
Created: 3
Updated: 2
Skipped: 0
  • CSV ファイルのエンコーディングは UTF-8 を推奨
  • テーブル名に対応するモデルが存在する必要があります
  • 外部キー制約がある場合、関連データを先にインポートしてください
  • べき等な動作のため、同じファイルを複数回実行しても安全です