Aller au contenu

Snapshots

Les snapshots enregistrent un point de récupération de la sandbox.

Shell
wp rudel snapshot alpha-3be7 --name=before-test

Restaurer un snapshot :

Shell
wp rudel restore alpha-3be7 --snapshot=before-test

restore demande une confirmation ; --force ignore l’invite. Les noms de snapshot peuvent comporter jusqu’à 64 lettres, chiffres, points, tirets ou traits de soulignement, et doivent commencer par une lettre ou un chiffre.

Les snapshots servent à récupérer une sandbox, pas à définir son identité d’exécution. L’enregistrement d’environnement reste la source de référence pour la sandbox.

Contenu des snapshots

  • toutes les tables portant le préfixe de la sandbox, y compris celles des utilisateurs, sont copiées dans la même base de données sous {sandbox_prefix}snap_{hash}_, par exemple wp_b65338d_snap_3ba676_options
  • le répertoire du thème de la sandbox est copié vers snapshots/{name}/themes dans le répertoire de la sandbox
  • les métadonnées de snapshots/{name}/snapshot.json et snapshots/{name}/db_snapshot.json

Un snapshot nécessite donc une copie complète des tables de la sandbox dans la base de données de l’hôte, ainsi qu’une copie des fichiers du thème.

Éléments absents des snapshots

  • le noyau WordPress de l’hôte
  • les fichiers partagés des extensions
  • les fichiers partagés des téléversements

Restaurer

La restauration supprime les tables de la sandbox (tout en conservant celles du snapshot), recopie les tables du snapshot et remplace le répertoire du thème de la sandbox par la copie enregistrée.

Par défaut, Rudel enregistre d’abord l’état actuel dans un snapshot nommé pre-restore-{timestamp}-{hash} afin de pouvoir annuler une restauration. Définissez auto_snapshot_before_restore sur 0 dans rudel_config pour désactiver cette option.

Lister et supprimer

Il n’existe aucune commande CLI pour lister ou supprimer des snapshots. Depuis PHP, Rudel::snapshots( $id ) les liste, du plus récent au plus ancien. Les tables de snapshots sont supprimées à la destruction de la sandbox ; jusque-là, elles sont conservées, y compris celles créées automatiquement par pre-restore-* (issue #5).