1

우리 회사 프로젝트에서 우리는 2 개의 레일 프로젝트를 가지고 있습니다 : A와 B는 동일한 데이터베이스이지만 다른 모델을 공유합니다. 내 상사는 신입 회원이기 때문에 두 프로젝트의 보석/레일 엔진에 모델을 추출 할 수 없으며 제작에 많은 위험이 따른다. 그래서 나는 그것을 현재대로 유지해야합니다. 나는 많은 것을 연구했지만 여전히 해결책을 찾지 못했습니다. 제가 요약 해 드리겠습니다 :2 레일 응용 프로그램 간의 데이터 공유

프로젝트 A는 항상 최신의 모델이되도록 데이터베이스에 데이터를 생성하고 저장하는 데 주로 사용됩니다. 프로젝트 B는 프로젝트 B가 모든 모델을 A로 가지지 않고 B의 일부 모델이 연관성이 부족하도록 데이터를로드하는 데 사용됩니다. 내 임무는 프로젝트 B에 대한 테스트를 추가하는 것입니다. 이것은 내 해결책입니다.

우선 두 프로젝트에 대해 하나의 데이터베이스 테스트를 공유합니다.

두 번째로, 프로젝트 A에서 공장 데이터를 설정하여 테스트 데이터를 만듭니다.

그래서 프로젝트 B가 프로젝트 B가 해당 데이터를로드하고 검증 할 수 있도록 테스트 데이터를 작성하기 위해 A 프로젝트를 호출하거나 트리거 할 수 있습니까?

답변

0

기본적으로 응용 프로그램에서 일회용 스크립트를 실행하는 레이크 작업을 작성할 수 있으며 명령 줄에서 트리거 할 수 있습니다.

rails g task my_task_name 

이렇게하면 파일 lib/tasks/my_task_name.rake이 생성됩니다.

namespace :my_namespace do 
    task :my_app => :environment do 
    # create some db records here 
    end 
end 

네임 스페이스는 선택 사항입니다 사용 rake my_namespace:my_app

처럼 호출 할 것입니다있는,하지만 => :environment 부분은 중요하다 - 그것은 당신의 레일 응용 프로그램에서 코드를로드하는 작업은 다음과 같습니다 레이크 작업을 작성하는 것은 매우 간단하다.

당신은 레이크 작업 당신이있어 어떤 REPO의 lib/tasks 폴더에 보일 것입니다 실행하는 경우.

+0

나는 당신의 제안이 테스트 데이터베이스에 데이터를 채우는 프로젝트 (A)에 레이크 작업을 생성중인 것으로 가정합니다. 그러나 B면에서 A의 레이크 작업을 어떻게 호출 할 수 있습니까? –

+0

예, 껍데기에서 벗어날 수 있습니다. –

+0

B 프로젝트에서 A의 레이크를 호출 할 수 있습니까? 이 경우에는 아직 예제가 없습니다. 감사 –

관련 문제