목표 : CRON 작업 (또는 다른 예약 된 이벤트)을 사용하여 야간으로 기존 시스템에서 데이터를 내보내 데이터베이스를 업데이트합니다.Rails 작업을 작성하여 Rails 응용 프로그램으로 데이터를 가져 오시겠습니까?
모든 데이터는 기존 시스템에서 작성/업데이트/삭제됩니다. 웹 사이트는이 시스템과 직접 통합하지 않으므로 레일 앱은 단순히 데이터 내보내기에 나타나는 업데이트를 반영해야합니다.
나는 다음과 같습니다 ~ 5,000 제품의.txt
파일이 :
모든 값은 콜론
필드는 (:
)
"
)로 묶인 문자열
"1234":"product name":"attr 1":"attr 2":"ABC Manufacturing":"2222"
"A134":"another product":"attr 1":"attr 2":"Foobar World":"2447"
...
:
id
: 고유 ID; 영숫자name
: 제품 이름; 임의의 문자- 속성 열 : 문자열; 모든 문자 (예 : 크기, 무게, 색상, 크기)
vendor_name
: string; 모든 문자vendor_id
: 고유 공급 업체 ID; 숫자
현재 시스템에서 공급 업체 정보가 정규화되지 않았습니다.
모범 사례는 무엇입니까? 제품 및 공급 업체 테이블을 삭제하고 매주기마다 새 데이터로 다시 쓸 수 있습니까? 또는 새로운 행을 추가하고 기존 행을 업데이트하는 것이 더 낫습니다.
노트 :
- 이 데이터는 매일 밤 데이터베이스 수입을 통해 지속됩니다
Orders
을 생성하는 데 사용됩니다.OrderItems
은 데이터 파일에 지정된 제품 ID에 연결해야하므로 각 가져 오기에 대해 자동 증가 기본 키를 동일하게 사용할 수 없습니다. 고유 한 영숫자 ID는products
에서order_items
에 참여하는 데 사용해야합니다. - 이상적으로는, 나는 바닐라 SQL 문을 사용할 수 없습니다
- 공급 업체 데이터를 정상화하기 위해 수입을하고 싶습니다, 그래서 내가
Product.create(...)
및Vendor.create(...)
스타일의 구문을 사용하기 위해rake
작업을 작성해야 상상한다. - 이는 EngineYard
이 시도하지만 난 주에 대한 오류'정의되지 않은 지역 변수 또는 메소드의 데이터를 '받고 있어요 : Object'합니다. 이것이 일어날 수있는 모든 생각? – Nick
문제는'네임 스페이스 데이터를'네임 스페이스 : 데이터 할 '로 변경해야한다는 것이 었습니다. – Nick