공유 개발 모델

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

어, 난 그렇게 생각하지 않아.끝.

좋은 웹페이지 즐겨찾기