Des données peuvent et seront perdues. Dans ce tutoriel, on va sauvegarder et restaurer les données de notre site Django / Wagtail.
La sauvegarde ne devrait nécessiter aucune justification: il est essentiel de préserver non seulement le contenu de votre site mais également les informations des utilisateurs. Dans ce tutoriel, on va sauvegarder le contenu de notre site, y compris tous les fichiers multimédias avec le package dbbackup et le restaurer dans un environnement vide.
Dans ce tutoriel, on effectuera une sauvegarde de notre environnement de production. Vous pouvez suivre les mêmes étapes pour sauvegarder votre environnement de développement; c'est une bonne idée d'essayer le processus avant de l'exécuter sur un environnement de serveur en direct. Sur votre ordinateur de développement, activez votre environnement virtuel et installez dbbackup:
pip3 install django-dbbackup
Ajoutez-le à votre fichier requirements.txt et ajoutez l'application à vos INSTALLED_APPS
:
'dbbackup',
DBBACKUP_STORAGE = 'django.core.files.storage.FileSystemStorage'
DBBACKUP_STORAGE_OPTIONS = {'location': os.path.join(BASE_DIR, '../backups')}
Le premier paramètre pointe vers la classe que Django utilise pour implémenter le stockage de fichiers. Le deuxième paramètre définit l'emplacement des sauvegardes. Vous pouvez utiliser n'importe quel chemin que vous aimez; le paramètre ci-dessus place les sauvegardes dans un répertoire au même niveau que le projet. Créez ce répertoire /backups
. Il n'est pas nécessaire de migrer la base de données. Poussez les modifications dans votre référentiel, accédez au serveur, activez votre environnement virtuel là-bas et extrayez les modifications du référentiel. Créez également le répertoire /backups
sur votre serveur. Installez le package, soit avec la même commande que ci-dessus, soit avec
pip3 install -r requirements.txt
La sauvegarde de la base de données de votre site ainsi que de tous les fichiers multimédias est désormais aussi simple que:
python3 manage.py dbbackup
python3 manage.py mediabackup
Vous devriez maintenant voir deux nouveaux fichiers avec les sauvegardes dans le répertoire /backups
.
Avec ces fichiers, on peut restaurer dans la base de données existante (celle qu'on a sauvegardée) ou dans une autre, soit sur notre ordinateur de développement ou sur notre serveur de production. Si vous effectuez une restauration dans un nouvel environnement, dbbackup doit évidemment y être également installé et l'emplacement des sauvegardes doit être correctement défini. La copie des fichiers de sauvegarde du serveur distant vers le répertoire courant peut être effectuée avec la commande scp
:
scp usr_pet@165.22.199.4:/home/usr_pet/backups/\* .
où usr_pet
est l'utilisateur autorisé pour le projet avec le répertoire personnel /home/usr_pet
et l'adresse IP est l'adresse de votre serveur. La barre oblique inverse sert ici de caractère d'échappement et n'est nécessaire qu'avec zsh
.
Pour restaurer dans un nouvel environnement:
psql
avec: SELECT version()
; Sinon, installez la bonne version (par exemple sur Mac avec Homebrew) et démarrez-la. Vous devez ensuite d'abord créer un utilisateur de base de données (voir le premier tutoriel).psql
: CREATE DATABASE db_pet_backup OWNER usr_pet;
mkdir pet_backup && cd pet_backup
python3 -m venv env && source env / bin / activate
git clone https://github.com/prijme/pet.git
pip3 install -r requirements.txt
local.py
avec tous les mots de passe nécessaires (ou le copier depuis le serveur); assurez-vous que le nom de la base de données est db_pet_backup
python3 manage.py migrate
Vous avez maintenant un site vide. Placez le répertoire /backups
avec les fichiers de sauvegarde au même niveau que le répertoire du projet. Restaurez les données et les médias avec:
python3 manage.py dbrestore
python3 manage.py mediarestore
Cela termine la restauration. Il y a beaucoup d'autres choses qu'on peut ajouter à notre site, laissez un commentaire si vous avez des suggestions!
Commentez cet article (connectez-vous d'abord ou confirmez par nom et email ci-dessous)