There are two scripts for export and import backups.
These scripts can be called manually or by cron.
Project has a backup
directory with a one file .gitignore
for ignoring everything in this directory except that file.
Backup is an archive with all project's data which required to be stored:
- Dump of MySQL database
- Dump of Redis database
- project's
www/.env
file - complete
www/upload
directory - ignored config files from
www/application/config
directory:social.php
email.php
communities.php
Also script backups these two files:
- docker's
.env
file www/application/config/database.php
But they are not using for restoring because of different root's passwords fom MySQL.
When you create a new backup there will be recreated a directory named last-backup
(with unarchived data) and a new archive.
Archive has a date and time stamp in the name: backup_2020-08-13_18-32-50.tar.gz
To create a new backup just run:
./bin/backup/create.sh
For restoring you can use the following command. Project's docker containers must be started.
./bin/backup/restore.sh <path-to-backup-archive-file>
For example
./bin/backup/restore.sh ./backup/backup_2020-08-13_18-32-50.tar.gz
All files will be put to their correct locations. Redis and Memcached containers will be restarted.