Backups and restore

Backups and restores are Super Admin only. Restore and delete also need a recent password confirmation.

What a backup contains

  • A full logical database dump produced in PHP. It needs neither shell access nor mysqldump, so it works on shared hosting. The file is gzip-compressed with one statement per line; INSERTs are split at about 1 MB to stay under hosting packet limits.
  • A header with the application version, schema version and creation time, and an HMAC signature keyed to this installation.
  • Optional AES-256-GCM encryption (setting backup.encrypt, on by default) using backup.key from config/config.php.
  • Optionally, a ZIP of storage/uploads (attachments and logos).

Files are stored in storage/backups/ (not web-accessible) and listed with size, SHA-256, status and creator. The Verify button re-hashes a file to check its integrity.

Creating backups

  • Manually: Administration → Backups → Create backup.
  • Automatically: Settings → backup.auto_daily = on, plus cron. Retention (backup.retention_count, default 14) prunes the oldest automatic backups.
  • Download backups regularly and keep copies off the server. Keep the backup key in a separate safe place; without it, encrypted backups cannot be restored.

Restoring

  1. Administration → Backups → Restore on a listed backup, or upload a backup file made by this installation (its signature must verify).
  2. Confirm your password, review the target database name/host and the backup's version, and type the database name to confirm.
  3. Q-Putaway checks compatibility: the schema version must be no newer than the current one, with the same major version.
  4. It automatically takes a pre-restore backup, then executes only the statement shapes its own dumper writes (SET, DROP TABLE, CREATE TABLE, INSERT). It never runs arbitrary SQL.

If a restore fails part-way

The error shows the failing line. Restore the pre-restore backup (listed at the top of Backups) to return to the previous state, then investigate (time limits, disk space, packet size).

Limitations

  • Restore runs in a single request. Very large databases may exceed the host's PHP time limit; on shared hosting, also keep hPanel's own automatic backups enabled.
  • The uploads ZIP is not unpacked automatically on restore. Extract it into storage/uploads/ with File Manager.
  • Backups restore data, not code. Reinstall the matching application version first if needed.