Nous avons des modules personnalisés qui sont utilisés pour plusieurs sites. Ceux-ci ne peuvent pas être publiés en tant que modules apportés, par exemple parce qu'ils sont spécifiques au client, émettent des hypothèses qui ne fonctionnent pas pour les modules apportés, etc.
Je connais les possibilités suivantes pour y faire face:
copiez et collez-les. Il est évidemment difficile de maintenir le module à jour sur toutes les installations.
Avoir une seule installation multi-sites, mais ce n'est pas toujours possible.
Utilisez des sous-modules git, mais ils peuvent être désagréables, il est facile d'oublier de les mettre à jour et ne sont pas toujours pris en charge (par exemple Pantheon)
Drush crée des scripts à extraire d'un référentiel git commun. Pour cela, vous AFAIK devez utiliser Drush Make pour l'ensemble du site et nous ne l'utilisons pas actuellement.
http://drupal.org/project/fserver . Je ne l'ai pas encore essayé, quelqu'un sait-il s'il est suffisamment stable? La description du projet ne semble pas très prometteuse et il n'y a pas de version 7.x.
Autre chose / mieux? Que préférez-vous et pourquoi?
la source
Réponses:
L' approche Drush make, comme vous l'avez déjà mentionné, est la version que mon équipe utilise.
Même si vous n'utilisez pas actuellement Drush Make pour vos sites, il devrait être relativement simple de passer à ce flux de travail si vous le souhaitez, car Drush fournit également Drush Make-Generate qui générera le fichier Make à partir d'un site existant. Ainsi, pas besoin de sentir que cela ne vaut que pour les nouveaux sites. :)
la source
Si tous les sites sont sur le même serveur, vous pouvez utiliser
symlink
pour charger des modules à partir d'un emplacement central, oursync
si vous avez affaire à plusieurs serveurs.Cela résoudra le problème de la distribution des fichiers, mais vous devez toujours lancer une mise à niveau. Il peut être automatisé avec
drush
un script simple qui appelle la mise à niveau sur tous les sites, un par un.la source
Semble être que vous regardez presque à peu près toutes les solutions. Quand je l'ai lu, d'abord ce qui m'est venu à l'esprit ses deux autres solutions comme
rsync
ousymlink
mais encore une fois ce n'est pas confortable à maintenir.Ensuite, souvenez-vous de ce module Git Deploy qui est en fait un joli combo avec des sous-modules git.
Je n'ai pas encore essayé cette idée, mais cela pourrait fonctionner, ou au moins vous donner un indice sur la façon de le pirater pour faire votre propre système.
la source
J'utilise un référentiel git séparé pour tous les modules contribués / personnalisés où chaque module contribué ou personnalisé est dans une branche distincte (pas dans un sous-module).
voici comment fonctionne la fusion git ici:
Maître
master -> release
et un script bash / drush pour mettre à jour les branches
la source
J'utilise SVN à la place de Git pour stocker nos modules développés sur mesure. Après avoir validé la modification de localhost, je lance simplement le script bash qui exécute la commande "svn update" à des emplacements de serveur prédéfinis. Chaque fois que je déploie un module vers un nouvel emplacement, je mets à jour le script bash. C'est vraiment une configuration simple et fonctionne sans tracas.
la source