2011-11-02 2 views
1

여러 고객에게 판매 한 하나의 응용 프로그램이 있습니다. 각 클라이언트는 자신의 전용 응용 프로그램을 가지고 있습니다 (Heroku에서). 이러한 고객의여러 개의 원격 브랜치와 동기화되는 하나의 로컬 브랜치 : 어떻게?

응용 프로그램은 단지 3 개 설정 파일에 따라 다릅니다 : 나는 고객을 가지고 database.yml을, aws.yml 및 corporate.rb이

로컬로, 나는 하나의 마스터 분기 및 다른 많은 지역의 지점을 가지고. 각 고객의 3 가지 설정 파일을 저장하려면이 로컬 브랜치가 필요합니다. 나는 주인을 바꿀 때마다 모든 고객 지부와 합병하여 하나씩 Heroku에 밀어 넣습니다. 이 게시물의 제안에 따라

이 매우 무거운 편이다 ...

: pull/push from multiple remote locations, 나는 하나 개의 원격 그룹화 분기를 생성하고이 지점이 여러 URL에 연결되도록 내 설정 파일을 해킹.

문제는 내가 밀어 넣으려고 할 때 리모컨이 올바르게 동기화되지 않아 문제가 발생한다는 것입니다. 밀어 넣기를 강제하면 내 구성 파일을 덮어 씁니다.이 파일 역시 해결책이 아닙니다.

이러한 설정 파일을 .gitignore에 포함 시키려고했지만 계속해서 밀어 넣었습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 감사!!!

답변

1

나는 Heroku의 환경 변수를 사용하여 문제를 해결했습니다. 사실 변수를 사용하기 위해 변수를 설정할 필요가 없습니다. APP_NAME 변수를 사용하고 이니셜 라이저 파일의 각 앱에 내 설정을 지정하면됩니다.

# Custom values 

    case ENV['APP_NAME'] 
    when 'pgp' 
    CORPORATE_NAME = 'PGP Development' 
    S3_BUCKET = 'pgpdevelopment' 
    when 'anchor' 
    CORPORATE_NAME = 'Anchor Group' 
    S3_BUCKET = 'anchorgroup' 
    when 'corionl' 
    CORPORATE_NAME = 'Corio NL' 
    when 'masterproj' 
    CORPORATE_NAME = 'Corporate Demo' 
    when 'adg' 
    CORPORATE_NAME = 'ADG' 
    end 

#Default values 

    CORPORATE_NAME ||= ENV['APP_NAME'] 
    DEPARTMENT_SELECTION ||= false 
    GEOSCOPE_SELECTION ||= false 
    GEOSCOPE_DEFAULT ||= 'world' 
    DEPARTMENT_DEFAULT ||= 'all' 
    S3_BUCKET ||= ENV['APP_NAME'] 

    S3_CREDENTIALS = { 
    :access_key_id => my_key_id, 
    :secret_access_key => my_access_key 
    } 
    if Rails.env == "production" 
     S3_CREDENTIALS[:bucket] = S3_BUCKET 
    else 
     S3_CREDENTIALS[:bucket] = "#{S3_BUCKET}_dev" 
    end 

나를 옳은 길에두기위한 Thx!

0

리포지토리에 고객 특정 아티팩트를 버전 관리하지 않습니다. 다른 곳에서 변환을 한 다음 거기에서 영웅으로 밀어 넣으십시오. "admin"저장소가 필요합니다.

+0

조금 더 자세히 설명해 주시겠습니까? 어떻게 힘내를 사용하지 않고 Heroku에 접근 할 수 있습니까? "admin"저장소 란 무엇을 의미합니까? 고마워! – ndemoreau

관련 문제