У нас есть несколько пользовательских модулей, которые используются для нескольких сайтов. Они не могут быть выпущены как добавленные модули, например, потому что они зависят от клиента, делают предположения, которые не работают для добавленных модулей и так далее.
Я знаю о следующих возможностях справиться с этим:
скопируйте и вставьте их. Очевидно, что трудно поддерживать модуль в актуальном состоянии во всех установках.
Имейте единственную многосайтовую установку, но это не всегда возможно.
Используйте подмодули git, но они могут быть неприятными, их легко забыть обновить и они не всегда поддерживаются (например, Пантеон)
Сценарии Drush make для проверки из общего репозитория git. Для этого вам, AFAIK, нужно использовать drush make для всего сайта, и мы не используем его в настоящее время.
http://drupal.org/project/fserver . Я еще не пробовал, кто-нибудь знает, достаточно ли он стабилен? Описание проекта не выглядит многообещающим, и нет версии 7.x.
Что-нибудь еще / лучше? Что вы предпочитаете и почему?
источник
Ответы:
Drush делают подход, как вы уже упоминали, это версия моя команда использует.
Даже если вы в настоящее время не используете drush make для своих сайтов, вам будет относительно просто перейти к этому рабочему процессу, если вы хотите, так как drush также предоставляет drush make-generate, который сгенерирует файл make из существующего сайта. Таким образом, нет необходимости чувствовать, что это стоит только для новых сайтов. :)
источник
Если все сайты находятся на одном сервере, вы можете использовать их
symlink
для загрузки модулей из центрального места илиrsync
если вы имеете дело с несколькими серверами.Это решит проблему распространения файлов, но вам все равно нужно запустить обновление. Это может быть автоматизировано с
drush
помощью простого сценария, который вызывает обновление на всех сайтах, один за другим.источник
Похоже, что вы почти приглядываетесь ко всем решениям. Когда я читаю его, вначале мне вспоминаются два других решения,
rsync
или,symlink
опять же, его неудобно поддерживать.Затем вспомнили об этом модуле Git Deploy, который на самом деле был хорошей комбинацией с подмодулями git.
Я еще не пробовал эту идею, но она могла бы сработать или, по крайней мере, дать вам некоторое представление о том, как взломать ее для создания собственной системы.
источник
Я использую отдельный репозиторий git для всех добавленных / пользовательских модулей, где каждый добавленный или пользовательский модуль находится в отдельной ветви (не в подмодуле).
вот как работает git merge:
мастер
мастер -> релиз
и скрипт bash / drush для обновления веток
источник
Я использую SVN вместо Git для хранения наших пользовательских модулей. После того, как я фиксирую изменения с локального хоста, я просто запускаю скрипт bash, который запускает команду «svn update» в предопределенных местоположениях сервера. Всякий раз, когда я развертываю модуль в новом месте, я обновляю скрипт bash. Это действительно простая установка и работает без каких-либо хлопот.
источник