Могу ли я использовать drush для сравнения запущенных модулей на двух сайтах на одном сервере?


Есть ли способ использовать drush для сравнения списка запущенных модулей на двух сайтах Drupal 6?

У меня есть два сайта, работающих локально (с двумя кодовыми базами, если это имеет значение) с разными модулями, но очень похожая странная проблема ( обсуждается здесь ). При попытке найти модули, которые могут вызвать эту проблему, было бы действительно полезно получить список модулей, запущенных на обоих сайтах.

 6
Author: Community, 2011-05-04

3 answers

Я не знаю, есть ли прямой способ, но это должно работать с bash или аналогичной оболочкой. Понятия не имею, как это сделать с Windows:) Пожалуйста, прокомментируйте, и я включу это в ответ.

Сначала сохраните включенные модули обоих сайтов в текстовое поле с помощью этой команды:

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

Затем вы можете легко сравнить выходные данные этих двух файлов с diff.

diff first_file second_file
 7
Author: Berdir, 2011-05-04 23:52:14

Вот моя адаптация:

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
Author: dasjo, 2014-11-03 13:18:04

Ответ Бердира в основном работает, но есть более прямой способ сделать это, и вы можете сравнивать на нескольких машинах, если у вас есть псевдонимы 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
Author: iconoclast, 2012-11-14 17:10:57