Backup and Restore Data

When working productively you should back up the data and configuration of Part-DB regularly to prevent data loss. This is also useful if you want to migrate your Part-DB instance from one server to another. In that case, you just have to back up the data on server 1, move the backup to server 2, install Part-DB on server 2, and restore the backup.

Backup (automatic / Part-DB supported)

Part-DB includes a command php bin/console partdb:backup which automatically collects all the needed data (described below) and saves them to a ZIP file.

If you are using a MySQL/MariaDB database you need to have mysqldump installed and added to your $PATH env.

Usage

To back up all possible data, run the following command: php bin/console partdb:backup --full /path/to/backup/partdb_backup.zip.

It is possible to do only partial backups (config, attachments, or database). See php bin/console partdb:backup --help for more info about these options.

Backup (manual)

3 parts have to be backup-ed: The configuration files, which contain the instance-specific options, the uploaded files of attachments, and the database containing the most data of Part-DB. Everything else like thumbnails and cache files, are recreated automatically when needed.

Configuration files

You have to copy the .env.local file and (if you have changed it) the config/parameters.yaml and config/banner.md to your backup location.

Attachment files

You have to recursively copy the uploads/ folder and the public/media folder to your backup location.

Database

SQLite

If you are using sqlite, it is sufficient to just copy your app.db from your database location (normally var/app.db) to your backup location.

MySQL / MariaDB

For MySQL / MariaDB you have to dump the database to an SQL file. You can do this manually with phpmyadmin, or you use mysqldump to dump the database to an SQL file via command line interface (mysqldump -uBACKUP -pPASSWORD DATABASE)

Restore

Install Part-DB as usual as described in the installation section, except for the database creation/migration part. You have to use the same database type (SQLite or MySQL) as on the backuped server instance.

Restore configuration

Copy configuration files .env.local, (and if existing) config/parameters.yaml and config/banner.md from the backup to your new Part-DB instance and overwrite the existing files there.

Restore attachment files

Copy the uploads/ and the public/media/ folder from your backup into your new Part-DB folder.

Restore database

SQLite

Copy the backup-ed app.db into the database folder normally var/app.db in Part-DB root folder.

MySQL / MariaDB

Recreate a database and user with the same credentials as before (or update the database credentials in the .env.local file). Import the dumped SQL file from the backup into your new database.