Про Drush

Опубликовано admin -

Набравшись опыту, расскажу, основываясь на собственных ошибках, как быстрее научиться работать с Drupal 7 платформой. При выборе Drupal 7 в качестве одной из основных CMS для разработок основывался на огромном количестве модулей и хорошей документации.

Итак, после установки Drupal 7 на локальный хост необходимо загрузить Drush или установить его через консоль. Командная строка Drush для Windows находится по адресу: http://www.drush.org/drush_windows_installer, Drush для Windows это простая командная строка чрез которую выполняются команды для работы c сайтом будь то очистка кэша, установка модулей их активация и т.д. Больше всего мне пригодились команда rsync, согласующая любое количество сайтов между собой - файлы и базы данных сайтов на Drupal.

Для того чтобы проверить правильность установки давайте перейдём в корневую директорию сайта Drupal 7, используя команду cd, например cd WebServers/home/test-mydrupal.ru/www/ и проверим правильность установки выполнив команду drush status. В итоге увидим примерно следующее: "Drupal version : 7.19...." и т.д.

Если вы увидели результат работы команды status, далее мы можем использовать любые команды Drush. Не исчерпывающий, перечень которых указан ниже:

Про Drush. Функции для работы с ядром!

cache-clear (cc) Очищает определенный кэш или весь кэш сайта
core-cli (cli) Открывает новую консоль, оптимизированную для использования Drush
соге-сгоп (сгоп) Запускает все хуки крона в активных модуляx определенного сайта
соге-rsync (rsync) Запускает Rsync для синхронизации дерева сайта на базе Druapl с другим сервером через SSH
соrе-status(status, st) Предоставляет общий вид текущей копии сайта если таковая присутствует
соrе-topic (topic) Считывает подробную документацию по указанной теме. Возвращает путь к указанной папке тосМе/
help Выводит справку для Drush. Дополнительные параметры можно узнать при помощи команды 'drush help'
Image-flush Удаляет все производные изображения в указанном стиле
php-eval, eval Запускает произвольный рhp код для Drupal 7
search-index Индексирует оставшиеся материалы
search-reindex Обновляет индекс для материалов
search-status Показывает неиндексированные пункты
self-update обновляет Drush
site-alias(sa) Выводит список всех псевдонимов для всех известных псевдонимов сайтов и всех локальных сайтов
site-install(si) Устанавливает Drupal 7 вместе с модулями/темами/конфигурацией, используя указанный профиль установки
test-clean(tc) Удаляет временные таблицы и файлы
updated (updb) Осуществляет все нужные обновления базы данных (аналогично запуску файла update.php)
site-alias(sa) Выводит список всех псевдонимов для всех известных псевдонимов сайтов и всех локальных сайтов
version Показывает версию Drush

Про Drush! Работа с перменными! Variables!

variable-delete Удаляет переменную
variable-get(vget) Получить значение переменной
variable-set(vset) Создает несколько переменных

Про Drush Работа с полями! Fields!

field-clone Дублирует поля и все их экземпляры
field-create Создает поля и экземпляры. Возвращает url адреса для редактирования полей
field-delete Удаляет поле и его экземпляры
field-info Выводит сведения о полях, их типах и виджетах

Про Drush Работа с пользователями! Users!

user-add-role(urol) Добавляет роль пользователю
user-block Блокирует указанного пользователя или пользователей
user-cancel Аннулирует учетную запись пользователе
user-unblock Снимает блокировку с пользователя
user-create Создает учетную запись пользователя
uinf например, - drush uinf 1 выводит сведения о пользователе с id 1
user-login Выводит ссылку для входа в пользователе учетную запись
user-password (upwd) Повторно задает пароль для пользователя с определённым именем
urrol Удаляет роль у пользователя

Про Drush Работа с модулями! Modules!

pm-disable (dis) Отключает один или несколько расширение (модулей или тем)
pm-download (dl) Загружает проекты с сайта drupal.org или других источников
pm-enable (en) Подключает одно или несколько расширений (модулей или тем)
pm-info(pmi) Выводит подробную информацию об одном или нескольких расширениях (модулях или темах)
pm-list (pl) Выводит список доступных расширений модулей или тем
pm-refresh (rf) Выводит свежую информацию статуса обновления
pm-releasenotes Выводит сопроводительные записи о версии проекта
pm-releases (rl) Выводит информацию о версии проекта
pm-unistall Удаляет один или несколько модулей
pm-update Обновляет выбранное расширение

Помимо указанного списка команд Drush имеет другие команды, например для работы с базой данных сайта на Drupal.

RSYNC синхронизация!

Но остановимся мы не на всех командах Drush, а на способе синхронизации локального и рабочего сервера для двух сайтов Drupal 7. Для этого нужно в директории Drush создать файл "myclient.aliases.drushrc.php" следующего содержания:

В этом файле мы создали алиасы (псевдонимы) для двух сайтов "local" и "dev". После этого можно приступить к синхронизации, при этом файлы неизменённые с момента последнего копирования не будут повторно загружаться с удаленного сервера. Обязательными параметрами являются root и uri.

--no-owner --no-group - необходимы для того чтобы не переопределять владельца пользователя при копировании файлов, смысл их указывать есть для Windows. В результате у вас должен появится следующей текст:


You will destroy data from /cygdrive/C/WebServers/home/test-mydrupal.ru/www and replace with data fr
om root@62.109.28.99:/var/www/joomla/data/www/
Do you really want to continue? (y/n): y
Could not create directory '/home/\300\344\354\350\355\350\361\362\360\340\362\356\360/.ssh'.
The authenticity of host '62.109.28.100 (62.109.28.100)' can't be established.
RSA key fingerprint is 6d:7d:d9:06:02:06:c4:85:db:98:60:5c:14:12:31:6c.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/\300\344\354\350\355\350\361\362\360\340\36
2\356\360/.ssh/known_hosts).
root@62.109.28.100's password:

Псевдонимы сайтов пригодятся ещё для быстрого доступа к сайтам на drupal, например к получить информацию о сайте dev можно следующим образом:

К сведению ещё хотел бы рассказать про основной конфигурационный файл drushrc.php, расположенный, в корне Drush (его нужно скопировать из c:\ProgramData\Drush\examples\example.drushrc.php или в /usr/share/pear/drush/example.drushrc.php в корневую директорию Drush), в нём можно определить параметры ($options) uri(u) и root(i) для сайта на drupal в этом случае у вас отпадёт надобность постоянно переходить в директорию с сайтом используя команду cd, но этот способ не подойдёт Вам если у Вас несколько сайтов.

Никогда не использовал особо Git для контроля версий, больше мне пригодился Drush с возможностью синхронизации Drupal сайтов за несколько секунд. Надеюсь Drush как и Git помогут Вам сэкономить время и деньги.

В следующей статье я расскажу про расширенные возможности Drush при работе с удалённым сервером и отдельные команды, полный список которых Вы всегда можете найти на сайте http://drush.ws/.

Взаимосвязанные материалы

# 1 . О том как заменить стандартную иконку (Throbber) в Drupal 8 ( ),

Для замены стандартной иконки загрузки (Throbber) в Drupal 8 необходимо добавить следующий js код:

читать...
# 2 . SetHandler none Drupal_Security...... ( ),
Долго пришлось искать проблему не отображения файлов для которых созданы стили в Drupal 8. читать...
# 3 . Temporary file '*****.tmp' could not be created ( ),

Если в последних версиях Drupal 8 появилась ошибка "Temporary file '*****.tmp' could not be created"

необходимо добавить в  файл \sites\default\settings.php  строку

читать...
# 4 . Как правильно кэшировать хлебные крошки в Drupal 8 ( ),

Несколько раз сталкивался с тем что последний элемент Breadcrumb кэшировался на страницах с типом "node", несмотря на то, что страница менялась. То же самое наблюдалось и с view. читать...

# 5 . Drupal 8. Несколько способов вывода информации черех Ajax ( ),
О том, как осуществить вывод информации с использованием ajax в Drupal 8. В Drupal 8 имеется несколько методов вывода информации через ajax - c применением методов Api и с использованием стандартных функций jQuery. При этом jQuery в Drupal 8 установлена по умолчанию. читать...

Комментарии

Command pm-update needs a higher bootstrap level to run - you will need to invoke drush from a more functional
Drupal environment to run this command. [error] The drush command 'up' could not be executed.

[error] Drush was not able to start (bootstrap) the Drupal database.

На разработку сайта! Скидки до 20%!