Aller au contenu

Installation

phil/backup-bundle

Prérequis

PrérequisContraintePourquoi
PHP>=8.5Le plancher de chaque paquet PHIL.
phil/backup^0.1@devLes clients, le chiffreur, l'archive des médias, la rotation et la garde.
doctrine/dbal^4.5La connexion dont la plateforme choisit le client et dont les paramètres donnent les identifiants de connexion.
symfony/config, symfony/dependency-injection^8.2L'arbre de configuration et la classe du bundle.
symfony/console^8.2Les trois commandes.
symfony/process^8.2L'exécution des outils clients.

Les outils clients de la base de données — sqlite3 ; mysqldump et mysql ; mariadb-dump et mariadb ; pg_dump et pg_restore, de la version majeure du serveur ou d'une version ultérieure — doivent être installés là où s'exécutent les commandes ; voir l'installation de phil/backup (doc/installation.md de ce paquet).

Installer

composer require phil/backup-bundle:^0.1@dev

Enregistrez le bundle là où Flex ne le fait pas :

// config/bundles.php
return [
    // ...
    Phil\BackupBundle\PhilBackupBundle::class => ['all' => true],
];

Avec DoctrineBundle, la connexion par défaut database_connection est sauvegardée dans var/backup, sans médias, et conservée indéfiniment. Une clé est exigée : sans elle, la construction du conteneur est refusée, sauf si allow_unencrypted: true indique que les sauvegardes peuvent être écrites en clair, pour une machine de développement dont les données ne sont pas réelles.

Une première clé

php -r 'echo base64_encode(random_bytes(32)), PHP_EOL;'
bin/console secrets:set PHIL_BACKUP_KEY
# config/packages/phil_backup.yaml
phil_backup:
    key: '%env(PHIL_BACKUP_KEY)%'

Gardez une copie de la clé hors du serveur : une sauvegarde est illisible sans elle. Ajoutez var/backup/ à .gitignore.