programing

Capistrano를 사용하여 배포할 때 Wordpress 및 플러그인을 업그레이드하는 방법은 무엇입니까?

css3 2023. 6. 19. 21:55

Capistrano를 사용하여 배포할 때 Wordpress 및 플러그인을 업그레이드하는 방법은 무엇입니까?

다음 시나리오가 WordPress 사이트에 업데이트를 배포하는 데 문제가 있는지 확인하고, 문제가 있다면 이를 가장 잘 관리할 수 있는 방법이 있습니까?

기본 사항:

  • GIT 및 Capistrano를 사용하여 원격 스테이징 및 프로덕션 서버에 배포하는 로컬 개발 WordPress Multisite 프로젝트가 있습니다.
  • 업로드 및 blog.dir 디렉토리(wp-content)를 제외한 모든 것은 버전 관리 하에 있습니다.예, WordPress 코어, 테마, 플러그인 등은 로컬에서 업데이트되고, 커밋되고, 푸시되고, 배포됩니다.즉, 처음에 로그인하고 플러그인을 활성화해야 합니다. 플러그인은 Capistrano 배포를 통해 간단히 설치됩니다.
  • 개발, 스테이징 및 프로덕션에 대한 데이터베이스가 서로 다르므로 이러한 데이터베이스를 동기화하는 것에 대해 걱정하지 않습니다.

내 관심사:

플러그인 및 WordPress 코어에 대한 많은 업데이트도 관리자를 통해 자동 업데이트를 수행할 때 데이터베이스에 대한 업데이트를 수행합니다.나는 내 개발 설치에서 로컬로 워드프레스 코어와 플러그인을 업데이트하고 있습니다.이러한 업데이트에 대한 코드는 커밋, 푸시 및 배포됩니다.그러나 코드가 배포되면 스테이징 및 프로덕션 서버에 변경된 파일을 추가/삭제/바꾸기만 하면 됩니다.일반적으로 자동 업데이트 프로세스(예: 비활성화, 업데이트됨, 활성화(데이터베이스에 대한 모든 업데이트 실행)의 일부이기 때문에 프로덕션 및 스테이징에서 데이터베이스에 대한 업데이트가 누락됩니다.

내 질문:

  1. 프로덕션 및 스테이징 서버에 최신 코드가 있지만 최신 코드에 필요한 데이터베이스 업데이트가 누락된 것이 정확한가요?
  2. 그렇다면 플러그인을 비활성화/재활성화하기 위해 Capistrano 배포 코드를 수정하는 방법에 대해 생각해 본 사람이 있습니까?WordPress의 변경 사항(예: 3.2에서 3.3으로)은 어떻습니까?
  3. Capistrano가 이를 위한 도구가 아닌 경우 - 그리고 관리자에 로그인하여 "수동으로" 수행해야 하는 경우 - 플러그인의 비활성화/활성화를 어느 정도 자동화하여 활성화 시 업데이트가 트리거되도록 하는 유지 관리 모드 도구/플러그인이 있습니까?

대단히 고맙습니다,

WordPress 코어를 버전에서 버전으로 업그레이드할 때 플러그인을 활성화하거나 비활성화할 필요가 없습니다.왜 그런지에 대한 Ryan Boren의 설명입니다.그러나 플러그인에 따라 일부 플러그인에는 업그레이드 프로세스가 내장되어 있을 수 있습니다. 즉, WordPress가 아닌 플러그인의 업그레이드입니다.그럼에도 불구하고 저는 당신의 세 가지 질문을 검토하고 가능한 한 직접적으로 대답할 것입니다.

프로덕션 및 스테이징 서버에 최신 코드가 있지만 최신 코드에 필요한 데이터베이스 업데이트가 누락된 것이 정확한가요?

예, 업데이트할 때 데이터베이스 스키마가 변경되면 새 스키마가 존재하지 않는 한 WordPress가 제대로 작동하지 않습니다.WordPress의 관리자 측에 액세스하려고 할 때, 데이터베이스 버전이 WordPress 버전이 예상하는 것보다 낮을 경우 데이터베이스 업그레이드 페이지로 리디렉션됩니다.

는 워드프레스라는 합니다.$wp_db_version/wp-vmdk/버전에서.php 파일 및 각 마이그레이션 스크립트는 버전 번호가 최신 버전이 될 때까지 각 이전 버전에서 다음 버전으로 점진적으로 업그레이드합니다.다음은 개정 번호가 WordPress 버전과 어떻게 관련되는지 보여주는 FAQ의 간단한 목록입니다.

그렇다면 플러그인을 비활성화/재활성화하기 위해 Capistrano 배포 코드를 수정하는 방법에 대해 생각해 본 사람이 있습니까?

위에서 말했듯이 플러그인이 특별히 필요하다고 생각되지 않는 한 코어 업그레이드 후 플러그인을 활성화/비활성화할 필요가 없습니다.WordPress에서 스키마가 변경되면 플러그인을 중단하고 플러그인 개발자는 새 버전을 릴리스해야 합니다.플러그인을 업그레이드할 때 플러그인이 종료되고 다시 시작되며, 필요한 모든 작업이 수행되도록 하는 것은 개발자의 책임입니다.

그러나 실제 업그레이드 프로세스는 다른 시스템에서 수행되므로 최종적으로 사용될 데이터베이스와 다른 데이터베이스를 사용하기 때문에 귀사와 같은 배포 환경에서 별도로 비활성화/활성화해야 할 수 있습니다.

가장 좋은 방법은 배포 스크립트를 WordPress 내 플러그인의 URI, 플러그인을 비활성화/활성화하기 위해 작성하는 플러그인 또는 이미 실행 중인 기존 플러그인에 연결하는 것입니다.

기존 플러그인 중에는 원하는 부분을 처리할 수 있는 플러그인도 있을 수 있지만, 자동화와 각 환경에 로그인하고 각 환경의 플러그인을 업그레이드하지 않는 것이 중요하다고 생각합니다. 따라서 필요한 기능을 수행하는 플러그인을 직접 개발하는 것이 좋습니다.워드프레스가 이미 제공하는 도구를 사용한다면 플러그인 개발이 가능합니다.

전체 /wp-admin/includes/plugin을 살펴봅니다.당신이 유용하다고 생각하는 것을 보기 위해 php 파일./wp-admin/plugins.php의 관리자 측 플러그인을 실제로 처리하는 추가 체크아웃 코드입니다.중지하는 것이 좋습니다.deactivate_plugin자동으로 정리되는 플러그인을 사용하여 플러그인 구성을 삭제할 때 발생하는 후크이므로 패스를 고려해 보십시오.$silent~하듯이true플러그인을 비활성화할 때 사용합니다.

이걸 정말 매끈하게 만들려면, 아마 당신은 당신을 잡고 싶을 것입니다.get_option('active_plugins')이미 활성화된 플러그인을 확인하고 해당 플러그인에서만 스크립트를 실행합니다(플러그인이 프로세스에서 자신을 제외하는지 확인)

WordPress의 변경 사항(예: 3.2에서 3.3으로)은 어떻습니까?

3.2에서 3.3으로의 변경은 다른 변경 사항과 다르지 않다고 생각해야 하므로 여기에 언급된 모든 사항이 적용됩니다.

Capistrano가 이를 위한 도구가 아닌 경우 - 그리고 관리자에 로그인하여 "수동으로" 수행해야 하는 경우 - 플러그인의 비활성화/활성화를 어느 정도 자동화하여 활성화 시 업데이트가 트리거되도록 하는 유지 관리 모드 도구/플러그인이 있습니까?

나는 카피스트라노가 여기서 어떤 무거운 일도 할 것이라고 생각하지 않지만 확실히 그것도 방해가 되지도 마찬가지입니다.플러그인 내에서 URI를 누르기만 하면 애플리케이션 내에서 작업을 수행할 수 있습니다.중요한 것은 이러한 모든 기능을 사용할 수 있어야 하므로 독립적인 스크립트처럼 실행할 수 없다는 것입니다.

언급URL : https://stackoverflow.com/questions/9426156/how-to-upgrade-wordpress-and-plugins-when-deploying-using-capistrano