На работе мы переходим к настройке наших новых сайтов в git и занимаемся локальной разработкой. До сих пор я создал файл drush make вместе с профилем установки, и у меня есть этот сценарий через puppet, так что когда пользователь делает свежий клон репозитория, он загружает все пакеты и запускает базовую установку сайта. Это работает хорошо.
Теперь у меня вопрос, когда мне нужно использовать новый модуль для сайта. Например, мы строим новый модуль для сайта. Я хочу, чтобы другие разработчики извлекли из git и автоматически установили новый модуль. Добавление его в файл drush make только приведет к его загрузке, а запуск «drush si» приведет к переустановке сайта, уничтожив все данные.
Какой лучший способ сделать это?
редактировать
Я чувствую, что не объяснил это должным образом. Я ищу способ автоматического включения модулей на основе записей make-файла в drush. Идея состоит в том, что пользователь извлекает проект, и тогда я получу кукольный запуск 'drush make' и 'drush si', если файла settings.php не существует. Что мне нужно выяснить, так это то, когда в следующий раз, когда пользователь делает пул, и мы добавили новый модуль, как автоматически включить его с помощью некоторого сценария. Если мне понадобится, я напишу что-нибудь, чтобы разобрать make-файл и запустить 'drush en' вручную, но я бы хотел найти что-то предварительно подготовленное для этого.
источник
Ответы:
Я работал в компании, у которой был большой поток разработчиков, сценариев и программ, которые пытались максимально автоматизировать процесс. Все должно было быть сделано в коде, по сценарию с использованием функций или обновлений.
По сути, вам нужно иметь 1 пользовательский модуль, который содержит хуки обновления. Таким образом, когда разработчик извлекает обновление для базы кода, он запускает обновление базы данных, и это может выполнить любое включение / отключение модуля. Перехватчики обновлений не влияют на новую установку, поскольку предполагается, что модуль уже обновлен, и будет выполнять только новые обновления.
Обобщить:
Вот пост, в котором рассказывается о похожем подходе и приводятся примеры кода.
источник
Это большой вопрос.
drush make
удобно для скачивания модулей. Мы не хотим вносить вклад в раздувание модулей. За здесь дело сделано не распространятьсяmake
таким образом. Возможно, функции лучше всего подходят для управления состоянием модуля модуля сайта, а также для других аспектов конфигурации.источник
Рассмотрите возможность изменения вашего рабочего процесса.
Похоже, вы хотите выполнять распределенную работу и «делиться» включающими модулями и другими значениями конфигурации ... каким-то образом.
Если вы думаете об этом - даже «ядро» Drupal и Drupal.org этого не делают. Код передается в модули Core и сообщества, которые выполняются в процессе непрерывной сборки. Drupal.org и многие проекты используют Jenkins.
Для установки Jenkins, ориентированной на разработку Drupal, он также использует Phing, см. Это git-репозиторий: http://reload.github.io/jenkins-drupal-template/
Используя Jenkins, вы можете перенести код в свое мастер-репозиторий Git и создать сайт для демонстрационного сайта из своего Установочного профиля и Drush Makefile. Это не решит вашу проблему точно, но предоставляет вам 1 место, куда вы все нажимаете change (s) для добавления / включения / удаления модулей, и, надеюсь, вы все не «нарушаете сборку».
Предполагая, что сборка не нарушена - безопасно вносить изменения в локальную систему разработки.
Jenkins + сервер Staging or Development - это только 1 часть разработки.
Ваш локальный рабочий процесс может использовать установочные профили + make-файлы. Рассмотрите возможность совместного использования контента с помощью пользовательских модулей с помощью Migrate, если вы можете позволить себе время генерации контента. Примеры обмена контентом с разработчиками, использующими Migrate и Phing, можно прочитать здесь:
http://marzeelabs.org/blog/2014/03/17/coding-as-a-team-content-fixtures/ http://marzeelabs.org/blog/2014/03/03/coding-as-a- команда-автоматизации, используя-Phing /
И, наконец, посмотрите этот PDF-файл на сессии из Drupal Camp Ohio 2014, посвященной непрерывной интеграции и работе с вашей командой:
источник
Для этой же цели мы используем Мастер . Он использует файл settings.php для предоставления информации о главных модулях. С простой командой
drush master-execute
все отсутствующие модули (и их зависимости) включаются, а модули, которые больше не используются, отключаются.В настоящее время модуль не читает информацию из make-файла, но, возможно, это может быть вариантом для нового выпуска.
источник
Вы можете включить модули либо вручную, выбрав опцию Модули, либо с помощью терминала, используя команду drush.
и так далее.
источник
Модули можно включить двумя способами:
либо из терминала, используя команду drush :
A.
drush dl modulename
- для загрузки модуля в первую очередьB.
drush en -y modulename
- для включения модуляИспользуя пункт меню Module, а затем включив модуль из числа отображаемых модулей.
источник
module_enable()
например. Или импортируя подготовленную базу данных.Я хочу, чтобы некоторые это были уверены. Функция make используется для загрузки различных частей сайта: модуля, тем и проекта через git. Когда вы записываете свой профиль установки, вы записываете в информационный файл зависимые модули. Проблема в том, когда вам нужно добавить новый модуль для вашего профиля установки для существующего профиля - я прав?
Для этого вам нужно использовать hook_update_N, когда N обозначает обновление номера. Хук используется для модуля, который должен выполнять такие действия, как: обновление схем, добавление переменных и их использование для сайтов и распространение, например OpenScholar, для включения новых загруженных модулей на действующий сайт.
Возможно, вам нужно добавить это в самый общий модуль, и функция будет выглядеть следующим образом: https://github.com/openscholar/openscholar/blob/SCHOLAR-3.x/openscholar/modules/os/os.install#L16
Хук должен быть расположен в файле module.install. Если вы используете пользовательский интерфейс, вам нужно перейти на www.site.com/update.php, а если вы используете drush, просто используйте команду drush updb.
источник
Как я понимаю, файл Drush .make загружает только проекты с drupal.org, если вы хотите включить некоторые модули, можете сделать это с помощью профиля установки ** (. Install) **. Профиль установки дает вам варианты, какие модули вы хотите включить во время установки.
Недавно я также добавил один дистрибутив с помощью файла .make. Даже я поделился всем опытом .make здесь . Я знаю, что это не связано с тем, что именно вы спрашиваете, но может помочь вам понять, что именно делает файл .make.
Так что из всей этой задачи, насколько я понимаю, с помощью файла .make нельзя автоматизировать включение модуля. Для этого вам нужно следовать другому подходу.
Я надеюсь, что этот URL форума поможет вам. Автоматизация Drupal с использованием сценариев Bash и Drush .
Вам нужно написать некоторый bash-скрипт, в котором именно вы будете использовать команды Drush.
источник
Как насчет использования файла Drush Make в сочетании с профилем установки Drupal? см .: https://drupal.org/node/1022020
источник