【Rails】 rake seed 명령으로 CSV 파일에서 DB로 읽는 방법

4497 단어 MySQL루비CSVRails5
서비스를 만들 때 CSV 파일을 seed 명령으로 읽고 싶었기 때문에 나중에 스스로도 볼 수 있도록 써갑니다.

CSV 파일이란?



CSV = Comma-Separated Values
보기 흉할 수 있지만 열의 데이터가 쉼표(,)로 구분된 텍스트 파일 또는 데이터입니다.
자세한 것은 모르기 때문에 깊이 알고 싶은 분은 조사해 보세요.



덧붙여서 VsCode를 사용하는 분은 Excel viwer라는 편리한 확장 기능이 있으므로 설치해 보면 CSV 파일을 쉽게 볼 수 있습니다.
ぁtps://마르케 tp.ゔぃすあ lsつぢお。 이 m/있어 ms? 그리고 m 핥기 = G 라 페시 ty. gc- x x l ゔ ぃ
이런 느낌입니다 ↓


본제로부터 조금 탈선해 버렸습니다만 순서를 쫓아 설명해 갑니다.

CSV 파일 만들기



mac을 사용하고 있다면 numbers라는 앱으로 csv 파일을 쉽게 만들 수 있습니다.

Excel에서도 메모장에서도 텍스트 편집기라고 불리는 것이라면 무엇이든 만들 수있는 것 같습니다.

자신은 Mac을 사용하고 있기 때문에 numbers를 사용한 작성 방법을 소개합니다.

먼저 편집기를 엽니다.


자신이 넣고 싶은 데이터를 입력해 갑시다.
나는 샘플 CSV를 집어 들었고 편집을하지 않았지만 파일의 맨 위 줄에 열 이름을 넣자.
예를 들면 도도부현 코드는 단지 id에 도도부현명은 prefecture등으로 해 컬럼명은 임의에 넣읍시다.


데이터 입력이 끝나면 csv 형식으로 저장합니다.
이미지처럼 「파일」→「내보내기」→「CSV」라고 선택해 갈 뿐입니다!


seed 파일 준비



작성한 CSV 파일을 rails 앱의 db 디렉토리에 넣으십시오.
여기에 넣은 CSV 파일을 확인하고 이 기사의 첫 번째 이미지와 같이 쉼표로 구분된 텍스트 파일이 있는지 확인합니다.

db/seed 파일 편집



seeds.rb
require "csv"

CSV.foreach('db/seeds/csv/content.csv', headers: true) do |row|
  Content.create(
    title: row['title'],
    image_url :row['image_url'],
    director: row['director'],
    description: row['description'],
    open_date: row['open_date']
  )
end

나는 seeds 폴더를 따로 만들고 그 안에 content.csv 파일을 넣고 있기 때문에 'db/seeds/csv/content.csv'와 같은 설명을하고 있지만 'db/〇〇.csv'라고 씁니다. 너무 괜찮습니다.
키 부분에는 테이블의 열 이름을, 값에는 CSV 파일의 열을 기입해 갑니다.
그것을 가능하게 하고 있는 것이 "headers: true"가 됩니다.


rake db:seed 명령 입력



CSV 파일을 만들고 seeds.rb 파일에 작성한 후 터미널에서 명령을 입력하기 만하면됩니다.

seeds 파일에 코드를 쓰고 있으면 터미널에서 rake db:seeds
자신처럼 seed 데이터를 분할하여 실행할 수 있도록 하려면 rake db:seed:xxx.rb를 치면 실행될 것이다.

seed 데이터를 분할하는 방법은 이 사이트를 이해하기 쉽습니다.

명령을 실행한 후 rail c로 콘솔에서 DB 정보를 확인해 봅시다!

이상이 됩니다만 뭔가 잘못된 정보등 제공하고 있으면 코멘트란에서 전해 주세요!

좋은 웹페이지 즐겨찾기