Architecture projet multi-sites

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,
Je me permets de vous contacter pour avoir vos retours d'expérience sur un projet multi-sites.
Je vous explique mon projet : création d'une usine à sites pour plusieurs entreprises d'un même groupe.

En gros, chaque entreprise va réutiliser un socle commun (modules, configuration, blocs, types de contenus...) mais aura une partie front (templates, CSS, JS...) personnalisée.

Dans mon architecture actuelle j'ai dans mon dossier /sites :

  • Un dossier /all : qui contient tous les modules (custom et contrib) en commun pour tous les sites des entreprises du groupe.
  • Un dossier pour chaque entreprise du goupe (par exemple, l'entreprise alpha aura son dossier /alpha qui va contenir tous les templates et CSS propres à l'entreprise alpha). Chaque site sera implémentée via une installation de Drupal et utilisera une base de données propres à cette entreprise.

J'ai donc commencé à travailler sur ce projet en développant tout d'abord le socle commun à tous ces futurs sites puis j'ai commencé à travailler sur la première entreprise (appelons la alpha) qui me sert de référence.

J'ai configuré un profil d'installation propre à cette entreprise alpha.

J'ai également mis en place une feature qui me permet de facilement transférer les configurations qui seront communes à tous les sites des entreprises (appelons cette feature, feature_socle).

J'ai livré le tout en pré-prod chez le client : socle commun, installation de l'instance Drupal pour l'entreprise Alpha, templates pour Alpha...

J'ai ensuite voulu me lancer dans le développement de la seconde entreprise du groupe (appelons la Beta). Beta va donc se reposer sur le socle en commun puis aura ses propres fichiers de templates et CSS dans le dossier /beta.
J'ai donc mis en place un profil d'installation propre à Beta (qui reprend la même structure que pour Alpha). Je lance l'installation de ce profil...et là petit hic, l'instance Drupal de Beta plante !

Problème du au revert de la feature feature_socle qui contient quelques références à Alpha (export de cette feature pendant le développement de l'instance Alpha).

Je me retrouve donc coincé. J'ai pensé à une solution : garder cette feature feature_socle en commun pour toutes les entreprises dans mon dossier /all (mais en enlevant à l'export les références propres à chaque entreprise), encore faut-il que cela soit possible ? Et donc de mettre en place dans chaque dossier d'entreprise, une feature qui contiendra les données propres à la configuration de chaque entreprise.
Ces features me sont indispensables pour livrer les configurations Drupal chez le client.

Etant débutant Drupal (Drupal 7), je ne sais pas du tout si je me dirige vers le bon choix... Ma solution est-elle bonne ? Réalisable ?
Avez-vous de l'expérience sur le sujet ?
Tous les retours seront bons à prendre.

Un grand merci d'avance !

Bien cordialement,

Version de Drupal : 

Salut,

As-tu gardé le dossier d'origine nommé default dans sites/ ? Il peut te servir de référence pour réaliser une installation safe d'un nouveau site dans ton multi.

Si j'ai bien compris tu utilises le module feature (que je ne connais que très peu pour le moment), pourquoi ne pas intégrer ta feature une fois Beta bien installé ? C'est bien là tout l'intérêt de feature il me semble non ? J'ai du mal à comprendre d'ailleurs pourquoi tu veux intégrer ta "feature_socle" dans all alors que ce ne sont que des paramètres pour configurer ta BDD (ajouter des nodetype, fields, taxo, etc.).

Bonjour et merci de la réponse.
La "feature_socle" me permet d'appliquer des modifications en commun à tous les sites du groupe. Je souhaite la garder car elle me permettra d'un simple export d'aller appliquer les modifications futures du client sur l'ensemble des sites du groupe.
Le problème est que cette feature contient des références au thème Alpha ce qui fait planter Beta une fois que j'applique la feature_socle.