Steve Frécinaux

One Day Back

Comme certains ici le savent, j’ai souffert, en ce début d’année, d’une mystérieuse volatilisation de base de données… Pour m’en prémunir à l’avenir, quoi de plus naturel que de faire une sauvegarde chaque jour ? C’est pour cela que j’ai développé cette classe PHP, afin de me permettre de revenir un jour en arrière si jamais pépin il y a.

Cette classe permet de faire une sauvegarde régulière de sa base de données, et d’envoyer ladite sauvegarde via email. Comme une base de données, ça peut être relativement lourd, seules les modifications apportées à la table sont enregistrées (des “pages”), ce qui permet ainsi de revenir à un état récent assez facilement, à partir d’un dump plus ancien.

Il est possible de définir plusieurs fréquences de sauvegarde, par exemple pour sauvegarder les changements apportés à la base de façon quotidienne, et pour faire un dump complet une fois par semaine.

En principe un cron n’est pas nécessaire, dans la mesure où la classe stocke d’elle-même, dans un fichier, les dates des dernières sauvegardes, et peut ainsi gérer seule lesdites sauvegardes. Ceci signifie aussi que le (ou les) fichiers utilisés par la classe doivent être accessible en écriture à l’utilisateur Apache ! Pour faire fonctionner la sauvegarde, il suffit donc d’appeler la classe à un moment ou à un autre dans l’une de vos pages les plus visitées. Pour éviter de retarder la génération des pages, je vous suggère de lorgner du côté de la fonction PHP register_shutdown_function()

Voici les fichiers disponibles :

N.B. : Cette classe est distribuée sous licence LGPL : en gros (en éludant les aspects légaux), ça signifie que vous pouvez utiliser cette classe dans un projet n’étant pas distribué sous licence libre, mais que si vous apportez des modifications à cette classe, une éventuelle redistribution doit se faire sous licence libre LGPL. N’hésitez pas à me signaler l’existence d’une telle version modifiée ! :D