[Rails] 각 seed 파일에 대한 데이터 관리

4147 단어 seedRubyRails
팀은 플리마 앱의 복제 사이트를 만들고 있다.
그때는 seed 파일 처리가 좀 어려워서 비망록으로 남겼어요.

하고 싶은 일


상품 전시 시 상품 상태 배송비.기다리다
데이터베이스에 값을 입력한 다음 드롭다운 메뉴에서 선택
이런 느낌.

이루어지다


1. rake task 제작


직하 seed.라크를 만들고 다음 내용을 기입하세요
lib/tasks/seed.rake
 Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb')).each do |file|
   desc "Load the seed data from db/seeds/#{File.basename(file)}.
   task "db:seed:#{File.basename(file).gsub(/\..+$/, '')}" => :environment do
     load(file)
   end
 end

2. 개별 seed 파일 만들기


db/seeds 디렉터리를 만들고 '데이터를 넣을 모델 이름.rb' 파일을 만듭니다.
이번에는 우선 상품 상태를 나타내는 컨디션입니다.rb 만들기
db/seeds/Condition.rb
conditions = Condition.create([
  {condition: "新品・未使用"},
  {condition: "未使用に近い"},
  {condition: "目立った傷や汚れなし"},
  {condition: "やや傷や汚れあり"},
  {condition: "傷や汚れあり"},
  {condition: "全体的に状態が悪い"}])

3. 집행


실행만 남았기 때문에 터미널에 다음 명령을 입력하십시오
bundle exec rake  db:seed:condition
데이터가 condins표에 넣었습니다!

그런데 문제가 생겼어요.


현지 환경이라면 이렇게 하면 좋겠지만 정식 환경에서 설계를 할 때
생성된 모든seed 파일을 읽을 수 없고 데이터를 반영할 수 없습니다

해결책


seeds.rb에 다음과 같은 기술을 추가하다
seeds.rb
require "./db/seeds/condition.rb
이후 본격적인 촬영 환경에 대한 반응은 OK.
참고 문장
공식 환경에서 rakedb:seed 투입 데이터 사용하기

끝맺다


active hash를 사용하시면 조금 더 편하실 것 같긴 한데요.
물품 인도 기일이 있기 때문에, 우선 이 방법으로 실시하였다.
또 다른 좋은 방법이 있으면 알려주세요.

참고 문장


Rails에서 seed 데이터를 분할하여 실행
Rails seed 파일 분할 및 관리

좋은 웹페이지 즐겨찾기