[Ruby on Rails] CSV 파일을 사용하여 데이터를 일괄 적으로 DB로로드하는 방법
소개
seed내에서 데이터를 작성하는 것이 귀찮았기 때문에, Excel(Numbers)로 데이터를 작성해, 일괄로 DB에 읽어들일 수 있는 방법을 정리했습니다!
【환경】
나는 Mac을 이용하고 있기 때문에, 초기 탑재되고 있어, 무료로 사용할 수 있는 Numbers를 사용.
(중복 셀을 찾아내거나 복잡한 처리는 Excel을 사용.)
사용법
CSV 파일 만들기
CSV 파일 만들기
3. 데이터를 작성한 후 파일 → 내보내기 → CSV를 선택
4. 안내에 따라 다음
5. 파일명(선택사항)과 저장처(선택사항)를 지정하여 내보내기
seed 파일 준비
방금 만든 파일을 DB 디렉토리에 넣습니다.
seed 파일 편집
db/seeds.rb
require "csv" #csvファイルを読み込む為に記載
#movieをcsv経由で追加する
CSV.foreach('db/movies.csv', headers: true) do |row|
#'db/movies.csv'←先ほど作成したCSVファイルのパスを指定
# headers: true ←Numbersファイルの先頭行を読み込む
Movie.create( #データ挿入先のテーブル名を指定
title: row['title'],
#title:←テーブルの項目名を指定
#row['title']←対応するNumbersファイルの先頭行を指定
release: row['release'],
production: row['production'],
screening_time: row['screening_time'],
genre: row['genre'],
status: row['status'],
)
end
seed 파일 불러오기
터미널에서 rails db:seed 실행
rails db:seed
명령을 실행 한 후 rails c로 결과를 살펴 보겠습니다!
잘 DB에 데이터가 들어가지 않으면 다음을 시도해보십시오!
(첫 번째 줄에는 시트 이름, 두 번째 줄에는 키가 포함될 수 있음)
rails db : migrate : reset → rails db : migrate → rails db : seed에서 재설정을 시도하십시오
예. DB의 항목 정의 순서가 title, release, production, ...이면
CSV의 기재 항목 순서도 title, release, production, ...로 한다
(내 경우에는 이것으로 잘 들어갑니다.)
이상이 됩니다만 뭔가 잘못된 정보등 제공하고 있으면 코멘트란에서 전해 주세요!
참고
【Rails】 rake seed 명령으로 CSV 파일에서 DB로 읽는 방법
Reference
이 문제에 관하여([Ruby on Rails] CSV 파일을 사용하여 데이터를 일괄 적으로 DB로로드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kamada-enginner/items/31652499065d2579a4f4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)