it-swarm-ko.tech

drush를 사용하여 동일한 서버의 두 사이트에서 실행중인 모듈을 비교할 수 있습니까?

Drush를 사용하여 두 개의 Drupal 6 개 사이트에서 실행중인 모듈 목록을 비교하는 방법이 있습니까?

다른 모듈을 사용하여 로컬로 실행되는 두 사이트 (중요한 경우 두 개의 코드베이스 포함)가 있지만 매우 유사한 이상한 문제가 있습니다 ( 여기에 대해 논의 됨 ). 이 문제를 일으킬 수있는 모듈을 찾으려고 할 때 두 사이트에서 실행중인 모듈 목록을 얻는 것이 정말 도움이 될 것입니다.

6
acrosman

직접적인 방법이 있는지 모르겠지만 이것은 bash 또는 유사한 셸에서 작동합니다. Windows에서이를 수행하는 방법에 대해 잘 모르겠습니다. :) 의견을 보내 주시면 답변에 통합하겠습니다.

먼저 다음 명령을 사용하여 두 사이트의 활성화 된 모듈을 텍스트 필드에 저장합니다.

drush pm-list --status=enabled > enabled_modules_site_x.txt

그런 다음이 두 파일의 출력을 diff로 쉽게 비교할 수 있습니다.

diff first_file second_file
7
Berdir

내 적응은 다음과 같습니다.

diff -b -s --suppress-common-lines <(drush @sa1 pm-list --status=enabled --fields=package,name) <(drush @sa2 pm-list --status=enabled --fields=package,name)

다른 서버에서 활성화되지 않은 모듈에 대한 빠른 개요를 얻기 위해 버전에 대해서는 신경 쓰지 않습니다.

2
dasjo

Berdir의 대답은 대부분 작동하지만 더 직접적인 방법이 있습니다 .and 허용하도록 설정된 drush 별칭이 있으면 여러 컴퓨터에서 비교할 수 있습니다.

diff -b -s --suppress-common-lines --side-by-side <(drush @uat pm-list --status=enabled) <(drush @dev pm-list --status=enabled)

(분명히 @uat@dev 귀하의 경우에 적합한 별칭으로.)

일반적으로 차이점에 대해서만 신경을 쓰므로 --suppress-common-lines는 유용한 옵션입니다. 나란히있을 때 차이점을 더 쉽게 볼 수 있으므로 --side-by-side 옵션도 도움이 될 수 있습니다. 표준 diff 출력을 선호하는 경우 제거하십시오. -b는 공백 차이를 무시하므로 매우 편리합니다. -s는 결과가 동일한 지 여부를 알려줍니다. 이는 기본값이 아니라 피드백을받는 것이 좋습니다. diff는 차이가 없으면 아무 말도하지 않습니다.

그러나 특정 조건에서 두 서버간에 출력 형식이 다르게 지정 될 수 있기 때문에 항상 완벽하게 작동한다고 보장 할 수는 없습니다.

그러나 두 개의 Drupal 설치에서 활성화 된 모듈을 비교하는 매우 빠르고 쉬운 한 단계의 방법으로 대부분의 경우 95 %에서 작동합니다.).

1
iconoclast