Download the PHP package mrtnsn/backup-manager without Composer
On this page you can find all versions of the php package mrtnsn/backup-manager. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package backup-manager
💼 Backup Manager for Laravel
Easy to use backup manager for Laravel.
Features
- Quick installation
- Integration with Laravels queue and filesystem
- Support for multiple Laravel versions (
5.1 => 5.5
) - Each table is stored in it's own file
- Chunking of large tables
:fire: Breaking changes
In version 2.0.0
we changed how the backup files are created meaning that backups created
before 2.0.0
can't be automatically imported. They can still be manually imported.
Installation
Composer
Provider
Add the service provider to providers
in config/app.php
so that it's registered
in your Laravel application.
Publish
If you need to change the default config you have to publish the config file.
Usage
Commands
The package exposes two artisan commands, one for export
and one for import
.
Export
Export will use your current credentials and config to export the database to your desired location. This is done by creating a schema file from the database, then each table is inspected and split into chunks. Each chunk and the schema is uploaded to the desired location.
This command gives no feedback since it's meant to be run from the scheduler. This prevent filling up log files with unnecessary data.
The command can be execute manually with a custom tag, this can be useful if multiple developers are testing different databases on a staging server and need to quickly change between them.
Running it from schedule (app/Console/Kernel.php)
Running it manually
Running it manually with custom tag
Import
Import will use your current credentials and config to import a selected backup.
This command is built to be run manually as it needs feedback to get the right backup.
You get to choose which subFolder
and which version
you want to restore.
After this is selected it will loop through all files matching those parameteres
and drop the table before importing it again.
This will cause minimal downtime as it only affects one table at a time.
Running it manually
Default config
Setting | Default | Description |
---|---|---|
disk | local | The Laravel filesystems disk to use |
rootFolder | backup-manager | The root folder where all backups will be stored |
subFolder | date('Y-m-d') |
The sub folder all the backups for that instance will be stored in. |
tag | env('APP_ENV') |
Tag is added after the table name and before the version (e.g. {table}_{tag}1, {table}{tag}_2, etc.) |
overwrite | false |
If false the version will be incremented for each new save within the same sub folder. If true only version 1 will exist and each new save within the same sub folder will overwrite the content. |
visibility | private | Visibility of the file, recommended to leave this as private. For more info take a look at the flysystem API: https://flysystem.thephpleague.com/api/ |
timestampFormat | Y-m-d H:i:s |
This format is used for displaying the timestamps of imports |
ignoreTables | [] |
Tables you want to ignore from the backup. |
chunkSize | 50 |
How many MB each chunk of the data can be |
mysqlGlobalSettings | [] |
Here you can set global MySQL config if need, e.g. SET SQL_MODE="ALLOW_INVALID_DATES" |
Roadmap
- Tests
backup-manager:inspect
to see files and info about a backup- Notification system for failed backups
- Support for PostgreSQL
All versions of backup-manager with dependencies
illuminate/contracts Version ~5.1.0||~5.2.0||~5.3.0||~5.4.0||~5.5.0
illuminate/support Version ~5.1.0||~5.2.0||~5.3.0||~5.4.0||~5.5.0
illuminate/filesystem Version ~5.1.0||~5.2.0||~5.3.0||~5.4.0||~5.5.0
illuminate/database Version ~5.1.0||~5.2.0||~5.3.0||~5.4.0||~5.5.0
illuminate/console Version ~5.1.0||~5.2.0||~5.3.0||~5.4.0||~5.5.0
league/flysystem Version ^1.0.27
symfony/process Version ~2.7||~3.0