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

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

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

6 голосов | спросил acrosman 5 Mayam11 2011, 03:28:32

3 ответа


7

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

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

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

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

diff first_file second_file
ответил Berdir 5 Mayam11 2011, 03:52:14
2

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

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

Все версии не нужны, чтобы получить быстрый обзор того, какие модули не были включены на другом сервере.

ответил dasjo 3 12014vEurope/Moscow11bEurope/MoscowMon, 03 Nov 2014 16:18:04 +0300 2014, 16:18:04
1

Ответ Berdir работает, в основном, но есть более прямой способ сделать это, и вы можете сравнивать на нескольких машинах, если у вас есть drush aliases, настроенные для его разрешения.

 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% случаев.

ответил iconoclast 14 32012vEurope/Moscow11bEurope/MoscowWed, 14 Nov 2012 21:10:57 +0400 2012, 21:10:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132