2010-07-16 6 views
1

나는 drupal을 어떻게 든 좋아합니다. 하지만 가장 방해가되는 부분은 명확한 배포 방법을 알 수 없다는 것입니다. Drupal은 업데이트해야 할 데이터베이스 (보기, cck, 워크 플로우, 트리거 등) 안에 많은 것을 저장합니다.라이브 드루팔 (drupal) 사이트에서 변경 사항을 배포

이 작업 (예 : 기능)에 사용할 수있는 모듈을 보았지만 충분한 지 모르겠습니다. 그러나 그들은 drupal6만을위한 것이며, 현재 업데이트가 아직 선택 사항이 아닌 drupal5 사이트에서 작업해야합니다.

아이디어가 있으십니까?

답변

5

약점입니다. 드루팔 (Drupal)은 Rails처럼 쉽게 개발 및 배포 할 수있는 개발자 도구가 내장되어 있지 않습니다 (예 :). 하나의 문제는 Drupal이 환경에 대해 기본적으로 인식하지 못한다는 것입니다. 둘째, 특별한 치료가 필요한 너무 많은 다른 방법과 모듈이 있습니다. 매우 혼란 스러울 수 있습니다. 그러나 drush와 drush make로 상황이 좋아지고 있습니다.

로컬 컴퓨터와 업로드하는 라이브 또는 준비 서버에 개발 환경이 있다고 가정합니다.

가장 먼저해야 할 일은 서버와 개발 환경간에 데이터베이스 픽스처와 코드를 신속하게 가져 오는 방법을 찾는 것입니다. 가능한 한 고통없이이 절차를 수행해야하므로 많은 노력 없이도 여러 버전의 사이트를 동기화 상태로 유지할 수 있습니다. 이는 배포 할 때마다 변경 사항을 적게 관리 할 수 ​​있기를 바랍니다. 다행히 ...

데이터베이스 이동은 그리 어렵지 않습니다. phpMyadmin이나 mysqldump를 사용할 수 있지만 백업 마이 그 레이션 모듈은 내가 가장 좋아하는 툴이다.

로컬 저장소 또는 사이트의 코드를 업로드하는 방법은 몇 가지가 있습니다. git과 같은 버전 제어 시스템을 사용하는 경우 로컬 시스템에서 커밋하고 준비 서버에서 다시 체크 아웃 할 수 있습니다. 또한 카피 스트라 노와 같은 특별한 배치 도구가 있어야합니다. (이 물건을 이미 안다면 다른 사람들이 읽을 때 도움이 될 수 있습니다.) FTP를 사용한다면 다른 것을 시도해야 할 것입니다.

아직 프로덕션중인 사이트로 작업하는 경우 로컬 사이트를 조금씩 변경 한 다음 라이브 사이트에서 반복하고 변경 사항이있을 때 새 버전의 데이터베이스를 다운로드 할 수 있습니다 그 자리에. 이것은 데이터베이스를 이중 처리하지만 안전한 일을 할 수 있음을 의미합니다. 데이터베이스를 서로 가깝게 유지하고 위험을 최소화합니다.

코드를 사용하여 서버로 뷰 백업을 내보내거나 라이브 사이트로 가져올 수도 있습니다. 여기에 cck 변경 사항을 배포하기위한 해킹이 있습니다. http://www.tinpixel.com/node/53 제대로 작동하지만 롤백과 같은 변경 사항을 진정으로 관리 할 수는 없습니다. (작성한 사람을 존중하십시오)

hook_updateN을 사용하여 변경 사항을 캡처 한 다음 update.php를 실행하여 적용 할 수도 있습니다. 수십 명의 개발자가있는 d5 사이트에서 작업 했으므로 앞으로도 계속 진행할 수있는 유일한 방법이었습니다. 사이트가 라이브 상태이거나 버전 제어 시스템에서 캡처 된 모든 데이터베이스 스키마 변경 사항이 필요하므로 (롤백 할 수있는 경우)이 옵션이 좋은 옵션 일 수 있습니다.

기타 : drush와 drush make를보십시오. 이러한 도구는 큰 이점이 될 수 있습니다. d5가 얼마나 많은 지원인지 기억이 안납니다.

마지막으로 다루는 방법 중 하나는 cck 또는 views를 사용하지 않고 후크 업데이트를 사용하는 것입니다. 그러나 이것은 개발자 자원이 큰 엔터프라이즈 사이트에만 적합합니다. 이것은 이상한 제안처럼 보일지 모르지만이 모든 문제를 완전히 무효화 할 수 있습니다.

죄송합니다. 명확한 답변을 드릴 수 없습니다. 이것은 아직 존재하지 않기 때문입니다. 일단 들어가면 자신 만의 리듬을 찾게 될 것입니다. 데이터베이스를 쉽게 롤백 할 수 있다면 데이터베이스의 백업을 유지하십시오.

관련 문제