준비 사이트, DB에서 동기화 업데이트를 어떻게 관리합니까?


11

개발자는 준비 서버를 통해 업데이트를 라이브 서버로 배포하기 전에 테스트 사이트를 테스트해야한다는 것이 널리 인정되고 있지만, 개발 업데이트에서 Wordpress DB를 수정해야하는 경우 라이브 사이트의 사용자도 DB를 업데이트하므로 문제가 복잡해집니다.

내가 상상할 수있는 유일한 (흐린) 흐름은 다음과 같습니다.

  1. 로컬 서버 (WAMP, XAMP 등)에서 테스트
  2. 배포 준비가되면 라이브 사이트를 유지 관리 모드로 전환
  3. 백업 라이브 사이트 (복제기, sqldump 등)
  4. 준비 사이트에 잠긴 라이브 사이트의 복제본 만들기
  5. 로컬 환경에서 스테이징 사이트로 수정 사항 업로드
  6. 준비 사이트 테스트
  7. 준비 사이트를 밀어 넣습니다.
  8. 유지 보수 모드 제거

위 흐름의 단점 :

  • 개발자가 준비 사이트에서 업데이트를 신중하게 테스트하는 동안 중단 시간이 사용자에게 예상보다 길어질 수 있습니다.
  • 예를 들어 siteorigin pagebuilder 레이아웃은 db에 저장되므로 레이아웃을 수정 한 후에는 준비 사이트에서 수동으로 가져와야합니다. 이 경우 단순히 준비 사이트에 페이지를 끌어다 놓고 가져 오는 것이 좋으며 작동하는 경우 라이브 사이트로 가져 오는 것이 좋습니다

이것을 달성하는 더 좋고 자동화 된 방법이 있는지 궁금합니다.

어떻게 생각해?

요청에 따라 EDIT는 과거에 제안 된 솔루션이 있지만 확실한 솔루션을 제공하는 솔루션은 없습니다.


@ Dan9, 라이브 사이트에 대한 액세스를 최소화하는 것이 더 안전하다고 생각했습니다. 라이브 사이트에서 레이아웃을 편집하는 것이 일반적인 습관입니까? 어쩌면 내가 너무 걱정하고 있습니다!
리카르도

글쎄, 당신은 그들을 생성, 업데이트, 삭제, 복원 할 수 있습니다. 당신은 무엇을 걱정하고 있습니까?
MinhTri

스테이징 사이트에서 테스트하지 않고 레이아웃을 업로드하는 것이 일반적입니까? 일반적인 워크 플로우 (로컬 / 스테이징 / 라이브)는 무엇입니까?
리카르도

wp-sync-db 플러그인을 살펴보십시오 .
MinhTri

신뢰할 수 있습니까? 이 도구를 사용하고 있습니까?
리카르도

답변:


2

WordPress에 특별히 적합한 최신 호스팅 제공 업체는 일반적으로 이러한 어려움을 완화 할 수있는 도구를 갖추고 있습니다. 나는 고객 에게이 깔끔한 Git 지원 워크 플로우 를 가진 Pantheon에 배치했습니다 . 여기서는 코드가 (개발에서 스테이징으로, 프로덕션으로) 이동하고 DB 작업은 (코드에서 반대로) 이동합니다. 프로덕션에서 스테이징으로 데이터베이스를 복사하면 인터페이스를 한 번만 클릭하면됩니다. 이 워크 플로를 존중한다면 프로덕션 데이터베이스를 엉망으로 만드는 문제를 거의 제거 할 수 있으므로 개발 준비 단계에서 새로운 프로덕션 DB 데이터 복제본에서 항상 변경 사항을 테스트 할 수 있습니다.

Pantheon을 사용할 필요는 없습니다. 자신의 도구 (Git + WP Migrate DB와 같은 DB 복제 플러그인)를 사용하여 프로세스에서 유사한 접근 방식을 채택 할 수 있습니다. 나는이 방법이 나를 위해 잘 작동한다는 것을 알았습니다.

질문 : 스테이징을 테스트하는 동안 왜 프로덕션 사이트를 유지 관리 모드로 설정 하시겠습니까? 대부분의 경우에는 그럴 필요가 없습니다. 내가 생각할 수있는 유일한 사례는 부팅 할 치명적인 버그와 함께 추가 사용자 데이터에 매우 민감한 일종의 취성 시스템을 갖는 것입니다. 제품의 전체 아키텍처를 다시 생각해야합니다.


내 공급자는 한 번의 클릭으로 준비 사이트를 만들고 다시 작성하는 테이블을 세부적으로 선택하여 푸시 투 라이브를 허용하지만 배포의 일부가 DB에 개발자 측 데이터를 주입하기 때문에 최종 테스트가 실행되는 동안 여전히 사용자를 잠글 필요가 있습니다. (예 : 사이트 빌더 페이지 레이아웃은 DB에 저장 됨)이 단계에서 사용자는 업데이트를 중지해야합니다. 이 단계를 수행하는 방법에 대한 더 나은 아이디어가 있다면 공유해 드리겠습니다.
Riccardo

BTW, 약간의 수정이있을 때마다 dev / staging / live 흐름을 수행합니까? 예를 들어 편집기에서 페이지 레이아웃을 약간 변경하거나 메뉴 수정
Riccardo

그렇습니다-파일은 항상 dev-> staging-> prod를 거치게됩니다 (아마도 staging을 비활성화하거나 dev를 기억할 수는 없습니다). Dev는 개발 팀을위한 것이며, 준비 단계는 QA 또는 디자이너 / 클라이언트 승인을위한 단계입니다.
몬트리올리스트

1

전체 프로세스 (파일 및 데이터베이스)에 GIT 버전 관리를 제공하는 VersionPress 를 살펴보십시오.

그들의 사이트에 설명 된대로 :

VersionPress는 무통 스테이징을 제공합니다 . 즉, 변경 사항에 대한 안전한 테스트 환경을 쉽게 만들고 준비가되면 다시 병합 할 수 있습니다. 여기서 병합은 핵심 단어입니다. VersionPress는 라이브 사이트가 그 동안 새로운 컨텐츠를 완벽하게 보유한 상황을 처리합니다.


1
이 도구의 신뢰성을 어떻게 확인할 수 있습니까?
리카르도
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.