Il s'agit d'un problème non trivial pour lequel presque tout le monde a une réponse différente: il n'y a pas de méthode canonique Drupal pour gérer la mise en scène en pousses de production. Dries Buytaert, le responsable du spectacle Drupal, en a fait l’une des initiatives clés de Drupal 8 . Bien sûr, Drupal 7 vient de sortir, il faudra donc attendre longtemps avant de porter ses fruits.
Le problème peut être divisé en deux problèmes distincts:
- Configuration intermédiaire (variables, types de contenu, champs, vues, etc.)
- Contenu de staging (nœuds, utilisateurs, etc.)
Les premières peuvent être gérées principalement par le module Features , qui transformera votre configuration de site en un module que vous pourrez ajouter à votre installation Drupal: vous pourrez ainsi l'ajouter à votre système de contrôle de version sans avoir à vous en soucier. être époustouflé lorsque vous migrez votre contenu.
Ce dernier point est vraiment délicat, car sur un site actif, il est probable que le contenu change en production même après la synchronisation initiale avec votre environnement de développement. Cela empêche le remplacement en gros du contenu lors de la mise en place, comme vous pouvez le faire avec la configuration.
De plus, Drupal n'utilise pas d'identificateurs universels uniques (UUID) pour le contenu: chaque fois qu'un nœud ou un utilisateur est ajouté, l'ID augmente de un. Le noeud 45 de votre site de développement peut donc être le noeud 90 de votre site de production.
Malheureusement, je n'ai pas de bonne solution pour cela: la mise en page de contenu est une faiblesse réelle de Drupal. Ce que je fais personnellement, c'est ajouter du contenu sur le site de production uniquement. Si un client souhaite savoir à quoi ressemble le contenu avant sa mise en ligne, je vais configurer un clone du site de production uniquement accessible au client. Ensuite, une fois approuvées, les mêmes modifications sont ensuite apportées directement à la production.
Une autre alternative est proposée: le module Deploy . Il est supposé utiliser les services pour rendre le contenu de la mise en scène relativement simple. Mais je ne peux pas garantir son efficacité et il n’a pas de version Drupal 7.
Dans notre processus.
Nous utilisons Hudson pour reconstruire nos branches dev / staging afin de synchroniser les branches live et dev.
Depuis que nous utilisons Git, chaque tâche que nous effectuons a sa propre branche, puis, lorsqu'elle est transmise au contrôle qualité, nous la fusionnons en maître pour servir de serveur de transfert pour les tests de régression.
Lorsque le master est prêt, nous effectuons une version de test de notre
Release Server
qui est une réplique de live (configuration, matériel, etc.).Nous utilisons le
Feature
module pour déployer des configurations. Certains éléments ne sont pas encore pris en charge par les fonctionnalités. Nous utilisons donc hook_update_N, puis exécutons updatedb.php oudrush -vd updb
drush fra --yes
) pour rétablir toutes les fonctionnalités remplacées.Puisque nous utilisons Boost (en passant à Varnish) et Memcache, nous devons effacer le cache (
drush cc all
).Nous utilisons rsync pour synchroniser nos images / vidéos, etc.
la source
Pour migrer d'un serveur XAMPP vers un autre serveur, j'ai suivi les instructions affichées sur ce site .
Assurez-vous de conserver la même structure sur votre serveur de production que sur votre serveur de développement. J'ai également dû modifier certains fichiers dans le tableau de bord de l'administrateur Drupal situé à l' adresse suivante : admin / config / media / système de fichiers
Assurez-vous que les emplacements corrects sont définis pour votre chemin de système de fichiers public et votre répertoire temporaire .
la source