2010-05-23 3 views
39

Je me demandais comment les équipes qui développent des sites utilisant Drupal (ou tout autre CMS) intègrent le contrôle de version, subversion, git ou similaire, dans leur flux de travail. Il est évident que vous voulez que votre code personnalisé et vos fichiers de thème soient sous contrôle de version, mais lorsque vous utilisez un CMS tel que Drupal, une grande partie du travail consiste à configurer des modules et des paramètres qui sont stockés dans la base de données.Travailler avec le contrôle de version sur un projet Drupal/CMS

Alors quand vous êtes une équipe de développeurs, comment collaborez-vous sur un projet comme celui-ci? Déposer la base de données dans un fichier et mettre ce fichier sous contrôle de version peut fonctionner, mais quand le site est en ligne, le client ajoute constamment du contenu ce qui rend la synchronisation un peu problématique.

J'aimerais savoir comment les autres font cela.

Répondre

16

Vous avez raison de dire que c'est un problème pour Drupal: le contrôle de version fonctionne correctement jusqu'à ce que vous remettiez le site à votre client ou que vous l'ouvriez aux utilisateurs.

Votre question ressemble à une version plus spécifique de ce one, qui a touché au contrôle de version dans le workflow de Drupal. Vous pouvez trouver des réponses là-bas qui aident.

Pour certains projets, j'ai exporté toutes les vues vers le code, en utilisant cette fonction du module Views, et j'ai un projet dans lequel tous les blocs ont été exportés. (Bien que ce fut un exercice de développement et pas une chose habituelle à faire avec des blocs.)

Jetez un oeil au travail que Development Seed fait pour contourner ce problème. Ils dirigent le développement des modules Context, Features et Spaces qui fonctionnent ensemble pour stocker les données de configuration dans les modules (en dehors de la base de données) afin qu'ils puissent être versionnés avec le code.

Il existe un groupe Drupal appelé Packaging & Deployment pour discuter des différentes solutions développées pour ce problème.

1

Actuellement, il y a beaucoup d'efforts pour créer quelque chose qui gérera les difficultés de production dev-> avec drupal par rapport à la base de données. Les caractéristiques, que flaminglogos mentionné est un, mais je pense que c'est plus axé sur la création de projets autonomes, à savoir ceux qui seraient installés sur de nombreux sites.

Pour un simple maintien de vos bases de données dev et prod, jetez un oeil à http://drupal.org/project/deploy et http://drupal.org/project/dbscripts. Ils prennent en charge la synchronisation et la fusion des données de configuration drupal du côté db.

Je ne peux pas garantir qu'ils sont prêts pour prime time mais ...

+0

Le module Deploy semble intéressant dans le screencast qui est lié sur sa page de projet, et je suis d'accord que c'est une bonne solution pour mettre à jour le contenu sur un seul site. – flamingLogos

0

Il y a beaucoup d'efforts d'expédition la prochaine version de la configuration en drupal code. C'est la clé pour l'avoir dans un système de version. Pour l'instant, vous pouvez utiliser le module Features, avec lequel vous pouvez exporter des éléments tels que les types de contenu, les vues, etc., pour les coder, puis les comparer, les mettre à jour et les réintégrer selon vos besoins.

Questions connexes