Planète JulienD

Par juliendubreuil
julien dubreuil
Drupal since 2009

Générer ses backups de base de données automatiquement avec Drush

Générer ses backups de base de données automatiquement avec Drush

Combien de fois vous vous êtes dit, “si seulement j’avais pris le temps de faire un backup”, “si seulement ma dernière sauvegarde ne remontait pas si loin” ? Oui comme moi il y a un jour ou vous l’avez vraiment regretté… Avec ce qui suit, vous n’aurez plus d’excuses et vous pourrez dormir sur vos deux oreilles (enfin si votre serveur est sous Linux, sinon je ne peux rien pour vous).

Aujourd’hui c’est un donc un énième billet sur Drush, ou du moins sur la commande sql-dump et ce afin de créer des sauvegardes automatiques de votre base de données. Je vous l’avais dit, une fois qu’on a goûté à Drush il devient difficile de s’en passer.

Au cas où vous ne découvriez Drush que maintenant voici quelques sujets qui pourraient vous intéresser, à savoir, comment installer drush et comment créer des alias afin de vous faciliter la vie dans la gestion de vos sites.

La commande Magique

Pas de Drush sans commande, du coup nous allons utiliser la commande drush sql-dump. Pour plus d’infos sur cette commande utilisez drush help sql-dump. Si vous utilisez la commande telle quelle, votre dump vous sera affiché dans votre terminal et comme nous, on aimerait bien garder ça dans un fichier, on va ajouter quelques options à notre commande.


1
<span class='line'><span class="nv">$ </span>drush @sandbox sql-dump --result-file --gzip
</span>

  • result-file permet de sauvegarder le dump dans un fichier. Par défaut la sauvegarde sera faite dans le répertoire ~/.drush-backups sauf si vous précisez votre propre chemin.
  • gzip sert à compresser le dump de votre base de donnée au format gzip.

Exclure les informations que l’on ne veut pas

La commande sql-dump va faire une sauvegarde complète de la base or nous n’avons pas besoin de récupérer les informations des tables de caches par exemple. Pour spécifier des tables à ne pas sauvegarder ou à exclure il suffit de modifier le fichier drushrc.php. Petit rappel sur ce fichier, vous le trouverez par défaut dans le répertoire examples de votre installation de drush, regardez les premières lignes du fichier pour savoir où vous pourrez le placer.

Dans ce fichier on va pouvoir définir les tables dont on ne veut pas les données (ex: tables de caches) et les tables dont on ne veut même pas la structure (ex: tables maisons, tables de migrations). Pour cela il vous suffira de remplir le tableau $options[‘structure-tables’] ou $options[‘skip-tables’].


1
2
3
4
5
6
7
8
9
<span class='line'><span class="cm">/*</span>
</span><span class='line'><span class="cm"> * Customize this associative array with your own tables. This is the list of</span>
</span><span class='line'><span class="cm"> * tables whose *data* is skipped by the &#39;sql-dump&#39; and &#39;sql-sync&#39; commands when</span>
</span><span class='line'><span class="cm"> * a structure-tables-key is provided. You may add new tables to the existing</span>
</span><span class='line'><span class="cm"> * array or add a new element.</span>
</span><span class='line'><span class="cm"> */</span>
</span><span class='line'><span class="nv">$options</span><span class="p">[</span><span class="s1">&#39;structure-tables&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
</span><span class='line'>  <span class="s1">&#39;common&#39;</span> <span class="o">=&gt;</span> <span class="k">array</span><span class="p">(</span><span class="s1">&#39;cache&#39;</span><span class="p">,</span> <span class="s1">&#39;cache_filter&#39;</span><span class="p">,</span> <span class="s1">&#39;cache_menu&#39;</span><span class="p">,</span> <span class="s1">&#39;cache_page&#39;</span><span class="p">,</span> <span class="s1">&#39;history&#39;</span><span class="p">,</span> <span class="s1">&#39;sessions&#39;</span><span class="p">,</span> <span class="s1">&#39;watchdog&#39;</span><span class="p">),</span>
</span><span class='line'><span class="p">);</span>
</span>

Maintenant qu’on a spécifié les choses inutiles à sauvegarder il ne nous reste plus qu’à le renseigner dans notre commande:


1
<span class='line'><span class="nv">$ </span>drush @sandbox sql-dump --result-file --gzip --structure-table-key<span class="o">=</span>common
</span>

Vous pouvez essayer cette commande pour vérifier que l’export fonctionne bien

Plannifier la sauvegarde

Il ne nous reste plus qu’à planifier l’exécution automatique de notre commande dans la crontab.

Pour visualiser ce qu’il y a dans la crontab il suffit d’éxecuter cette commande :


1
<span class='line'><span class="nv">$ </span>crontab -l
</span>

Pour modifier votre crontab exécutez celle-ci :


1
<span class='line'><span class="nv">$ </span>crontab -e
</span>

Voici un exemple qui va sauvegarder notre base tous les lundi à 4h15.


1
<span class='line'>04 15 * * 1 drush @sandbox sql-dump --result-file --gzip --structure-table-key<span class="o">=</span>common
</span>

C’est un exemple parmi tant d’autres à adapter en fonction de votre besoin. Pour plus d’infos sur la configuration de la crontab rendez-vous ici et si c’est encore trop compliqué à cette adresse.

Au final rien de bien compliqué, ça vous prendre plus de temps à lire cet article qu’à créer votre sauvegarde, mais maintenant vous n’avez plus d’excuse :)

Crédits Photo

Par juliendubreuil
julien dubreuil
Drupal since 2009

Drupal 7 : Les modifications de l’interface utilisateur que vous ne pourrez pas louper

Drupal 7 : Les modifications de l’interface utilisateur que vous ne pourrez pas louper

Comme je l’évoquais lors de mon introduction sur Drupal 7, un groupe nommé #D7UX (Drupal 7 User Expérience) a été crée afin d’améliorer les lacunes de l’interface d’administration de la version précédente. Ils ont eu pas mal de boulot et ont fait un excellent travail, le back-office de Drupal n’a plus à rougir en comparaison avec celui de Wordpress. Je n’ai pas encore passé beaucoup de temps sur cette nouvelle version mais le peu que j’ai vu m’a semblé assez intuitif et cela, dès l’installation.

Histoire de voir les modifications qui ont été apportées j’ai donc installé cette dernière version afin de vous détailler tous les changements.

Installation

Fini la vilaine page de vérification des pré-requis, pleine de messages d’erreurs sur fond rouge qui nous sautait aux yeux dès la deuxième étape lors de l’installation (c’était tout sauf accueillant). Maintenant on a une belle présentation de ce qui va ou ne vas pas avec comme avant, la procédure à suivre pour corriger les problèmes rencontrés. Rien d’extraordinaire mais la vérification du niveau de sécurité et la concordance des mots de passe est maintenant faite pendant la saisie et la barre d’installation/chargement de Drupal est dorénavant dynamique. Bon j’avoue que les deux derniers points ne servent pas à grand chose, mais bon ils font parti de la refonte globale alors ils ont le droit à leur moment de gloire.

installation Drupal 6

installation drupal 7

Premiers pas

La première chose que j’ai vu une fois l’installation terminée, a été la barre d’administration en haut du site. Connue sous le nom d’Admin menu pour Drupal 6, ce module fait maintenant parti du corps de Drupal 7, car il est vraiment indispensable dans l’administration de tous les jours. Autre atout de cette petite barre, c’est la possibilité d’ajouter des liens de raccourcis vers des fonctionnalités de votre site pour vos utilisateurs. Par contre je n’ai pas réussi à définir un jeu de raccourcis pour un rôle donné, est ce que j’ai loupé un truc ? Autre chose qui me manque cruellement par rapport au module admin menu, c’est la possibilité d’effacer le cache depuis la barre d’admin

Drupal7 admin menu et overlay

La deuxième fonctionnalité qui m’a sauté aux yeux à été l’overlay sur toutes les pages d’administration. Je ne suis pas spécialement fan, mais j’avoue que ça permet de faire une vraie différenciation entre et le front office et le back office. Pour supprimer cette fonctionnalité il vous suffit de désactiver le module Overlays.

L’Administration

L’interface générale d’administration a été revue et je trouve qu’elle est réussie, il y a une vraie distinction des zones et maintenant lorsqu’on arrive sur le “/admin” on dispose d’une liste de rubriques explicites.

Drupal7 admin sections

Autre nouveauté D7, le Tableau de bord. Depuis cette page vous allez pouvoir créer une vraie interface d’administration à l’aide de blocs et avoir ainsi accès en un coup d’oeil aux informations importantes de votre site. En jouant sur les paramètres de visibilité des blocs, vous allez pouvoir créer des tableaux de bord par rôles, pratique non ?
Puisque l’on parle des blocs, vous aurez peut être déjà remarqué que lorsque vous en survolez, un menu de configuration apparaît. Ce sont les liens contextuels. Ils s’activent au passage sur les différentes zones du thème, aussi bien sur un node que sur un bloc. Grâce à eux, plus besoin d’aller sur la page des blocs pour modifier leurs propriétés ou sur la page des contenus pour en éditer un.

Drupal7 dashboard overlay et lien contextuel

Gestion des modules

Je vous propose maintenant d’aller faire un tour du coté de la page d’administration des modules, car il y a plusieurs choses nouvelles ici ! Vous n’avez pas pu louper l’accès direct à la configuration des modules et aux permissions depuis cette page et avouez que c’est quand même bien pratique de ne plus avoir à chercher partout comment configurer correctement un nouveau module ? Notez aussi qu’il est dorénavant possible d’installer des modules, ou des thèmes directement depuis l’interface d’administration de drupal. Cliquez sur le lien “Installer un nouveau module” en haut de la page de listing des modules afin d’avoir la possibilité de soit uploader une archive soit de télécharger le projet directement depuis drupal.org.

Drupal7 modules

Drupal7 module installation

Les Thèmes

Après la page des modules place à la page des thèmes. En remplacement des anciens, trois nouveaux thèmes ont été ajoutés, Bartik, Seven et Stark, personnellement j’aime bien, il faut dire que je n’en pouvais plus de Garland. La nouvelle présentation des thèmes disponibles est bien faite, je trouve qu’elle ressemble beaucoup à celle de Wordpress. Il ne manque plus que la fonction de prévisualisation du thème.
J’ai parlé plusieurs fois de back-office depuis le début de cet article et il est vrai que sous D6 il n’était pas toujours facile de savoir si l’on était sur la partie visible ou non du site. Ce problème a été corrigé, il est désormais possible de configurer un thème spécifique pour la partie admin du site, par défaut il s’agit du thème Seven.

Drupal7 theme

Administration des types de contenus

L’interface d’administration des types de contenus a aussi eut le droit à un coup de pinceau, il est maintenant possible d’accéder directement à la gestion de l’affichage des champs d’un type de contenu. Vous n’êtes pas sans savoir que CCK a été inclu dans cette nouvelle version de Drupal sous le nom de FieldApi et qui permet maintenant de créer des champs sur presque tout, nodes, commentaires ou encore profils utilisateurs. Du coup l’interface des types de contenus accueille maintenant le formulaire des commentaires que vous pourrez personnaliser.
Body, ce champ D6 que l’on ne pouvait pas trop customiser ou du moins pas facilement, est maintenant un champ comme n’importe quel autre champ qu’il est possible de cacher ou d’ordonner, de même pour les champs de taxonomie, ils sont aussi modifiables.

Drupal7 gestion des champs

drupal champ commentaires

Passons maintenant au formulaire de création d’un type de contenu. La première chose qui frappe c’est qu’il n’y a plus cette quantité de fieldsets que l’on pouvait trouver en bas du formulaire, à la place on peut voir que tout est organisé avec VerticalTabs et c’est quand même bien plus lisible!
Le choix du format d’entrée a été repensé et est maintenant dynamique.

Drupal 7 vertical tabs

Dorénavant la gestion des images et des fichiers est incluse dans Drupal 7 donc plus besoin de se poser la question de comment faire ou quel module utiliser. Bon ça n’a pas grand chose à voir avec l’interface utilisateur mais c’était pour souligner le fait que maintenant 3 styles d’images (preset) sont fournis par défaut.

Les Permissions

Pour finir, rendons nous sur la page des permissions. Une nouvelle colonne est disponible de base, celle pour le rôle administrateur, il va enfin être possible de définir des droits pour un groupe admin.
Je n’ai pas remarqué beaucoup de différences par rapport à l’ancienne page, si ce n’est un nouveau droit “outrepasser le contrôle d’accès au contenu” qui permet d’avoir accès en lecture/modification/suppression sur tous les contenus.

Drupal7 permissions

Voila, ici s’arrête le petit tour d’horizon sur les nouveautés de Drupal 7. Au final énormément de changement, on ne peut que constater le travail fourni par l’équipe qui a oeuvré à la refonte de l’interface utilisateur, Bravo beau travail! Cela montre que Drupal s’améliore avec l’âge, qu’il ne laisse pas de coté les utilisateurs finaux et qu’il n’y en a pas toujours que pour les développeurs :)

Avec tout ça il serait difficile de ne pas être content de toutes ces nouveautés. J’espère vous avoir permis de découvrir quelques petits trucs que vous ne connaissiez pas encore. Il se peut que je sois passé à coté de certaines pendant ma première balade alors n’hésitez pas à me le dire ;)

Par juliendubreuil
julien dubreuil
Drupal since 2009

Introduction à Drupal 7

Introduction à Drupal 7

Après de longs mois d’attente et un énorme travail fourni par la communauté nous y sommes enfin, Drupal 7 est sorti hier. Presque 3 années ont été nécessaires pour la réalisation de cette version afin d’améliorer les défauts de la v6. Celle-ci se veut plus simple d’utilisation et plus accessible.

Beaucoup d’évolutions ne sont pas visibles, car elles touchent le coeur de Drupal, néanmoins s’il y a bien une chose que l’on ne peut pas louper c’est la refonte de l’interface utilisateur et de son ergonomie.

Un groupe D7UX a même été crée afin d’améliorer cela. Dans les grande lignes on peut noter l’ajout d’une barre d’administration permanente et une gestion de votre site via des pop-ups permettant l’édition « in-place ». Pour une gestion d’image en D6 il fallait ajouter quelques modules tels que imageAPI, imagecache, et filefield, maintenant c’est en natif.

Côté theming, nous pouvons dire au revoir aux thèmes Bluemarine, Chameleon et Pushbutton qui ont été remplacés par “Bartik” (thème par défaut), “Seven” (thème de l’interface d’admin) et “Stark” (thème minimaliste permettant de commencer un nouveau thème depuis zéro). Notez aussi que JQueryUI 1.8 fait maintenant parti intégrante du CMS et que les librairies Js incluses ont été remises à niveau. Le templating a été complètement revu pour un meilleur markup et le support du RDFa.

Les minimums requis pour faire fonctionner Drupal ont été modifiés, dorénavant vous aurez besoin d’un serveur avec PHP 5.2. Cette nouvelle version prend maintenant en compte MySQL 5.0.15 ou PostgreSQL 8.3.

Côté développeur on peut noter 3 chantiers importants. Le premier c’est l’intégration de SimpleTest, ce qui va vous permettre d’avoir un framework pour faire vos tests sur vos modules. Ensuite un chamboulement coté base de données avec l’intégration de DBTNG pour une meilleur prise en charge des différents types de bases, une gestion maître/esclave et l’utilisation de PDO afin d’avoir une abstraction complète du type de base. Et enfin l’intégration de CCK dans le coeur de Drupal, sous le nom de fieldapi. Ces deux derniers points feront l’objet d’un vrai billet car il y a de quoi en parler.

Le petit plus qui aura son importance pour les développeurs c’est qu’il est maintenant possible de faire des load multiples sur des users ou des nodes et fini les $op sur beaucoup de hook au profit de fonctions bien plus spécifiques.

Ce post n’est qu’une toute petite introduction aux nouveautés de D7, si vous voulez en savoir plus, vous pouvez vous rendre sur le site officiel ou encore sur différents articles que j’ai sélectionnés pour vous :

Et pour finir la présentation officielle en anglais de Drupal 7 par Jeff Robbins – http://vimeo.com/18352872

Au final cette nouvelle version est beaucoup plus flexible, accessible et performante que la précédente, néanmoins les problèmes de staggings n’ont pas encore été résolus (croisons les doigts pour D8). Maintenant il ne vous reste qu’à vous amuser avec afin de découvrir cette nouvelle version en profondeur et me faire un retour :p

Pages