공유 개발 모델
2834 단어 ruckusing-migrations
묘사
그들의 건의 방법/최선의 실천은 이 프레임워크를 사용하는 공유 개발에 적용됩니까?나는 루비와 최초의 DB 마이그레이션 프레임워크에 익숙하지 않다.한 프로젝트에 개발자가 여러 명 있으면시끄러운 프레임의 어떤 부분이 CVS 또는 subversion에서 공유됩니까?개발자가 프로그램에 새로운 기능을 추가하고 'php generate.php...' 을 사용하여 이전을 만들었다고 가정하십시오.개발자는 이러한 마이그레이션을 다른 개발자가 사용할 수 있도록 CVS/SVN 저장소에 제출합니까?
이것은 나의 방향이지만, 나는 약간의 피드백을 얻고 싶다.
감사합니다,
Stan
토론 #1
의 모범 사례/권장 방법은 혼란스러운 이전을 실제 응용 프로그램의 하위 디렉터리에 저장하는 것이다. 당연히 버전 제어이다.generate를 통해 생성된 모든 이동입니다.php는 Ruckusing에 저장되고 Ruckusing은 응용 프로그램에 저장됩니다.따라서 프로세스는 다음과 같습니다.
개발자 A가 로컬에서 실행할 새 마이그레이션을 만듭니다.정확성을 확인하고 버전 제어에 제출합니다.
개발자 B는 최신 코드를 추출하여 로컬 환경에서 실행합니다.
봐라!
그래서 방향을 맞췄어...
위의 시나리오에서는 DB 자격 증명과 같은 다른 구성 차이가 없다고 가정합니다.
토론 #2
네, 일리가 있습니다.고맙습니다.그럼 생산 이전은요?비슷한 방법을 추천해 주시겠어요?프로덕션 환경에서 마이그레이션하는 것은 별개의 문제이며 DBA가 참여하고 있으므로 이러한 접근 방식을 원치 않을 것이라고 믿습니다.이전에는 프로덕션 마이그레이션에서 이 기능을 사용한 경험이 있습니까?
토론 #셋
DBA와의 제휴 등 환경에 따라 생산이 달라질 수 있습니다.내 경험에 따르면 우리는 자신의 DBA로'php main.php db:migrate'를 배치 흐름에 연결하고 설정에서 지정한 생산 데이터베이스 증거를 사용한 다음에 이전은 생산에만 적용될 것이다.물론 이 가정은 이전이 진지하게 심사되었고 100% 승인/안전되었다고 가정한다.
또 다른 방법은 로컬 실행 마이그레이션 - 실제 생성된 SQL이 로그에 기록되는 것입니다. 그러면 이 SQL을 가져와 DBA에 직접 전달할 수 있습니다.이렇게 하면 그들은 실제 SQL을 볼 수 있고 시끄러움을 믿지 않고 스스로 그것을 비준할 수 있다.
따라서 Ruckusing은 개발자의 동기화를 유지하기 위한 개발 도구로 간주할 수 있지만, 배치에 있어서는 생성된 SQL을 DBA에 넘기기만 하면 됩니다.
토론 #4
시끄러움을 집중적으로 사용할 수 있습니까?현재 작업 디렉터리에서migrations/config를 불러오고 거기서 새로운 이전을 생성합니다. 그러나 실제 혼란의 핵심 집중 저장소는 무엇입니까?나는 이미 우리 프로젝트에서 시끄러움을 사용하는 것을 고려한 적이 있지만, 우리는 모든 프로젝트의 버전 제어에 전체 시끄러움을 포함할 수 없다.전체 응용 프로그램을 응용 프로그램과 함께 저장해야 하기 때문에 많은 실제 장면에서 사용할 수 없습니다.
나는 이것이 매우 쉽게 할 수 있다고 생각한다. 그렇지 않니?만약 네가 스스로 이것을 추가하지 않으려고 한다면, 나는 장래에 인출 요청을 할 것이다.들었습니다.처음에 저는 MediaWiki 코드 라이브러리와 함께 사용하기 위해 RU를 구축했기 때문에 약간 탈절되었습니다.
나는 이것이 매우 쉽게 할 수 있다고 생각한다.대부분의 경우, 설정 파일과 같은 형식의 PHP 그룹을
토론 #5
실례에 제공하기만 하면 됩니다.예를 들어 80-81번째 줄의 현재 주 파일을 보십시오. 이것은 하나의 파일에서 설정을 추출하지만, 이것은 일반적인 낡은 PHP 해시일 뿐입니다.환경 변수나 다른 물건에서 이 값을 추출한 다음에 PHP 그룹을 만들어서 실례에 제공할 수도 있습니다. 다른 환경 변수를 통해서일 수도 있습니다.
만약 네가 한번 시도하고 싶다면, 나는 감격해 마지 않을 것이다.
Ruckusing_FrameworkRunner
내가 볼 수 있는 유일한 문제는 코드에 약간의 상수가 흩어져 있다는 것이다. 이런 상수는 설정할 수도 있고 설정하지 않을 수도 있다.만약 그렇다면 나는 끝장날 것이다.이러한 경로를 설정하기 위해 정적 호출이 있었으면 좋겠다. 예를 들어://run from CLI, so cwd is /home/my/project/
$myPath = getcwd();
Ruckusing_FrameworkRunner::setSystemPath(RUCKUSING_BASE);
Ruckusing_FrameworkRunner::setMigrationsPath($myPath);
이렇게 하면 경로를 바꾸기 쉽다.내가 나중에 방법을 생각해 볼게...토론 #6
네, 맞아요.실행할 때 변경되는 정적 방법에 대한 생각은 일리가 있습니다.
2011년 7월 6일 오후 2:08에 토마스 페팔은 다음과 같이 썼다.
이것은 여전히 유효합니까?
고마워
토론 #7
어, 난 그렇게 생각하지 않아.끝.Reference
이 문제에 관하여(공유 개발 모델), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/ruckus/ruckusing-migrations/issues/3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)