나는 기본적으로 두 개의 사고 학교를 채택했습니다 (데이터베이스 diffs를 수행하는 세 번째 사고 학교, 복잡성이 매우 높기 때문에 논의하지 않습니다).
1) 프로덕션 데이터베이스를 삭제하고 개발 데이터베이스의 mysqldump를 가져 와서 배포하십시오. 선택적으로 SQL 덤프의 dev URL을 참조하는 하드 코딩 된 절대 링크에서 미리 정규식 찾기 / 바꾸기를 실행하십시오. dev db를 prod로 가져온 후에는 자동으로 SQL 문 (대개 스크립트를 통해)을 실행하여 prod와 다른 설정을 변경합니다 (예 : 변수 테이블에 필요한 외부 시스템에 연결하기위한 일부 연결 설정이있을 수 있음) dev 버전이 아닌 prod 외부 시스템을 가리 키도록 변경하십시오).
2) 관리자 설정에는 budda에서 언급 한대로 Features 모듈을 사용 하고 Delete All 모듈 과 함께 컨텐츠 내보내기 / 가져 오기 에는 Node Export 모듈을 사용하십시오 . 워크 플로는 다음과 같습니다.
- node_export 및 기능을 사용하여 노드 / 기능을 파일로 내보내기
- 선택적으로 (그리고 희망적으로) 버전 관리
- prod 시스템에서 파일로드
- drush 또는 관리 인터페이스를 사용하여 기능로드
- drush delete-all 또는 관리 인터페이스를 사용하여 가져 오려는 유형의 모든 노드를 삭제하십시오.
- drush ne-import 또는 관리 인터페이스를 사용하여 내 보낸 노드 파일에서 노드를 가져 오십시오.
한 가지 참고 사항은 콘텐츠가 한 방향으로 만 진행되는 표준 워크 플로를 채택하는 것이 좋습니다. Dev-> Prod 또는 Prod-> Dev 중 하나입니다.
나는 이것을 해왔고 꽤 좋은 결과를 가진 일부 큰 시스템에서 이것을하고 있지만, 항상이 사과를 얇게 자르는 방법은 여러 가지가있을 것입니다.