CSV データインポート
CSV ファイルからデータベースにデータをインポートする Rake タスクです。
rails csv:import[ファイルパス,テーブル名,モード]- ファイルパス (必須): インポートする CSV ファイルのパス
- テーブル名 (必須): インポート先のテーブル名(例:
authors,books) - モード (オプション):
updateまたはskip(デフォルト:update)
- update: ID が存在する場合は既存のレコードを上書き
- skip: ID が存在する場合はスキップ(新規レコードのみ作成)
CSV ファイルの形式
Section titled “CSV ファイルの形式”- 第 1 行目をヘッダー(カラム名)として使用
- ヘッダーはデータベースのカラム名と一致させる
idカラムを含めると、既存レコードの更新/スキップが可能
id,name1,著者A2,著者B3,著者C新規インポート(update モード)
Section titled “新規インポート(update モード)”rails csv:import[data/authors.csv,authors,update]既存の ID は上書きされ、新しい ID は作成されます。
新規レコードのみ追加(skip モード)
Section titled “新規レコードのみ追加(skip モード)”rails csv:import[data/authors.csv,authors,skip]既存の ID はスキップされ、新しい ID のみ作成されます。
モード省略(デフォルトは update)
Section titled “モード省略(デフォルトは update)”rails csv:import[data/authors.csv,authors]インポート完了時に以下の情報が表示されます:
Import completed: Created: 3 Updated: 2 Skipped: 0- CSV ファイルのエンコーディングは UTF-8 を推奨
- テーブル名に対応するモデルが存在する必要があります
- 外部キー制約がある場合、関連データを先にインポートしてください
- べき等な動作のため、同じファイルを複数回実行しても安全です