2012-12-06 3 views
7

내가 중요한 수정하여 테마와 사이트 구조를 만들기는 기존의 워드 프레스 사이트를 업데이트뿐만 아니라 MySQL 데이터베이스에 차례로 저장소에 플러그인되는 데이터를 업데이트를 만들고있어.워드 프레스 사이트 릴리스 관리 전략

지금까지 내가 여기에 2 (3?) 가능한 전략이 있습니다 알고 있어요 같이

  1. '덤프 및로드'DEV에서 MySQL 데이터베이스는 라이브 및 최신 업데이트 WP - 콘텐츠 폴더를 교체 .
  2. WP-importer를 통해 변경 사항을 가져오고 wp-content 폴더를 최신 업데이트로 대체하십시오.
  3. WP 관리 인터페이스를 통해 데이터베이스를 수동으로 변경하고 wp-content 폴더를 최신 업데이트로 바꿉니다 (사소한 변경에만 유용함). 난 내 자신의 별도의 환경에서 개발하고있는 동안

이 살고있는 현재 및 연락처 양식에 의견과 항목으로 대중 등의 업데이트를 계속받을 수 있습니다 기존의 웹 사이트입니다, 그러므로 나는 데이터베이스가 될 것으로 기대 지금 내 변경 사항을 공개 할 때와 다릅니다.

위의 옵션을 선택하면 다음과 같은 문제가 발생합니다.

1. 덤프 및로드는 '덤프 및로드'전략 내 데이터가 내부적으로 업데이트되는대로 밖으로 질문 것으로 보인다

(이이 나의 선호 된 접근했을 것이다 쉽게 롤백됩니다).

결과 : 최신 업데이트를 얻으려면 릴리스 이후의 데이터베이스 동기화가 필요합니다. TOO COMPLICATED.

2. WP-Importer plugin 페이지와 게시물 ID를 사용하여 수입

활성화하려면 게시물 ID를 의존하는 스타일을 속이고, 업데이트 얻을 것이다. 이것은 CSS (릴리스) 이후에 새로운 페이지/포스트 ID를 데이터베이스가 생성 한 ID/ID로 업데이트해야 할 필요가없는 CSS 악몽을 만듭니다.

결과 : 길고 복잡한 릴리스 프로세스로 이어지는 너무 까다롭고 전문적인 방법이 아닙니다.

3. 업데이트 DATABASE 수동

이 옵션은 작은 변화를 위해 중대하다하지만 더 복잡한 릴리스 단계의 목록은 PROD 인터페이스에 따를 때 만들 쉽게 만드는 따르 긴 어려워진다 실수.

결과 : 너무 쉽게 망칠 수 있습니다.

기존 웹 사이트에 대한 표준 WORDPRESS RELEASE STRATEGY가 있습니까?

그래서 기본적으로 제 질문은 : 기존 웹 사이트를 업데이트 할 때 다른 WordPress 개발자가 따르는 릴리스 프로세스는 무엇입니까? 번거 로움을 최소화하고 출시하는 동안 시간과 복잡성을 줄이기 위해 아래에 나열하지 않은 옵션이 있습니까?

저는 GIT를 사용하여 사이트에 대한 소스 컨트롤을 설정했고 ANT 또는 유사한 릴리스 스크립트를 통해 작업을 자동화하는 데 익숙합니다. 이는 현재 프로젝트에 과도 할 수도 있지만 최소한 간단한 방법에 대해 알고 있어야 이상적입니다. WordPress 사이트를 업데이트하고 실수로 사이트를 망칠 가능성을 최소화하십시오.

감사합니다.

+2

왜 내가 워드 프레스를 좋아하지 않는 또 다른 이유입니까 – cegfault

+1

[WordPress StackExchange] (http://wordpress.stackexchange.com/)에서 한 번 이상 논의 된 것을 본 적이 있습니다. – brasofilo

+0

요즘에는 Wordpress에 대한 스택 교환도 있습니다 ... –

답변

2

저는 이것이 WordPress에만 국한된 것은 아니라고 생각합니다. 모든 사용자 정의 사이트와 비슷한 상황입니다. 나는 개인적으로 dev에 만들어진 생산에 SQL 변경 사항을 재생하는 것을 선호한다. 까다로운 부분은 SQL 변경 사항을 알아야한다는 것입니다. 예를 들어 특정 플러그인은 설치시 스키마 변경을 할 수 있습니다. 당신은 플러그인을 설치하기 전에 SQL로 DB의 내보내기를 작성한 다음, 다른 내보내기를 수행 한 후 파일에 diff를 수행하여이를 수행 할 수 있습니다.

당신은 수정을하고 있다고 말하면서 나는 당신이 어떤 SQL 변경을 할 것인지를 알고 있다고 가정 할 것입니다. DB에 대한 모든 변경 사항이 GUI를 사용하여 편집하는 것만이 아니라 SQL 스크립트 파일 형식이어야합니다 (GUI를 사용하여 쿼리를 작성하지만 실제 SQL은 저장할 수 있음). 모든 변경이 완료된 후에는 개발 프로세스 중에 실행 한 많은 SQL 스크립트가 있어야합니다. 오류가 발생하지 않고 순서대로 다시 실행할 수 있습니다.

그런 다음 프로덕션 환경으로 전환 할 때 준비 버전의 프로덕션을 만듭니다 (프로덕션의 최신 DB 백업을 사용합니다). 업데이트 스크립트를 실행하고 모든 것이 정상적으로 작동하는지 테스트하십시오. 그렇다면 프로덕션 환경에서 실행할 수 있습니다.

확실히 변경 사항을 실행하기 전에 백업본을 만드십시오! WordFence 뒤에 남자가 배포 플러그인 작업을했다

+0

변경 전후의 DEV 데이터베이스에서 DIFF에 +1. 훌륭한 아이디어. –

2

물론 다른 옵션이 있습니다. db를 수동으로 변경하는 경우 직렬화 된 데이터를 효과적으로 사용하고 있는지 확인하십시오. Search and Replace DB을 사용하는 것이 좋습니다. WordPress에는 changing the site url entirely from the wp-config file에 대한 멋진 트릭도있었습니다.

+0

WP_HOME/WP_SITEURL 변수에 +1하고 Search + Replace DB 스크립트로 직렬화 된 데이터를 수정합니다. –

1

테스트 환경에서 모든 것이 실행되고 있다고 가정합니다. 그러면 다음과 같습니다.

  • 실제 환경에서 새 데이터베이스를 만듭니다.
  • 새 사이트의 모든 콘텐츠와 구성으로 미리로드하십시오.
  • 테스트 환경에서 config.php가 새 데이터베이스를 가리 키도록 구성하십시오.
  • 모든 파일을 라이브 서버에 업로드하십시오. config.php를 마지막으로 업로드하십시오.

이렇게하면 작동 중지 시간이 최소화됩니다.

+0

이것은 백그라운드에서 업데이트되는 데이터에 문제가있는 것 같습니다. – Maarten

+0

위의 옵션 3을 통한 수동 업데이트 (수동 DB 변경)를 수행하면 중단 시간을 최소화 할 수 있습니다. –