markocupic / contao-db-backup
Creates database backups with the Contao backup manager using a configurable cron job (Contao 5.3 and Contao 6).
Package info
github.com/markocupic/contao-db-backup
Type:contao-bundle
pkg:composer/markocupic/contao-db-backup
Requires
- php: ^8.3
- contao/core-bundle: ^5.3 || ^6.0
- guzzlehttp/promises: ^2.0
- psr/log: ^1.1 || ^2.0 || ^3.0
- symfony/config: ^6.4 || ^7.0 || ^8.0
- symfony/dependency-injection: ^6.4 || ^7.0 || ^8.0
- symfony/event-dispatcher: ^6.4 || ^7.0 || ^8.0
- symfony/event-dispatcher-contracts: ^3.0
- symfony/filesystem: ^6.4 || ^7.0 || ^8.0
- symfony/http-kernel: ^6.4 || ^7.0 || ^8.0
Requires (Dev)
- contao/manager-plugin: ^2.12
- contao/test-case: ^5.3 || ^6.0
Suggests
None
Provides
None
Conflicts
- contao/manager-plugin: <2.0 || >=3.0
Replaces
- contao-legacy/contao-db-backup: 2.0.0
README
Daily database backup for Contao CMS
This extension for Contao CMS uses the backup manager of the Contao core and creates a daily database backup via a cron job by default.
The backup files are stored under var/backups.
Requirements
- Contao 5.3 or later, including Contao 6
- PHP 8.3 or later
Configuration
# In your config/config.yaml
markocupic_contao_db_backup:
cron_intervals:
- '0 4 * * *' # Create a backup every day at 4.00 AM (multiple cron jobs possible)
contao:
backup:
ignore_tables: [ 'tl_crawl_queue', 'tl_log', 'tl_search', 'tl_search_index', 'tl_search_term' ] # default
keep_max: 40 # Keep 40 backup files (default 5)
# https://docs.contao.org/manual/en/cli/db-backups/#configuration
# time elements (H, M und S) must be prefixed with "T"
keep_intervals: [ 'T15M','T30M','T45M','T2H','T4H','T6H','T12H','1D','2D','3D','4D','5D','6D','7D','1M','2M','3M','4M','5M','6M' ]
Upgrading from version 1
Version 1 created the backups with mysqldump in files/contao_db_backup. Since version 2 the backup manager of the Contao core is used:
- The backups are stored in
var/backups(as.sql.gzfiles) instead offiles/contao_db_backup. Old backups are not moved or deleted. - The option
markocupic_contao_db_backup.store_backup_filesis no longer used. Configurecontao.backup.keep_maxandcontao.backup.keep_intervalsinstead (see above). exec()andmysqldumpare no longer required.
Command
To execute the database backup on the command line, you can run php vendor/bin/contao-console contao:backup:create
To show the existing backups you can run php vendor/bin/contao-console contao:backup:list on the command line.
To restore the database you can run php vendor/bin/contao-console contao:backup:restore backup__20220126153243.sql.gz on the command line.
