Skip to content

Latest commit

 

History

History
82 lines (60 loc) · 3.38 KB

File metadata and controls

82 lines (60 loc) · 3.38 KB

Flarum Database Snapshots

Latest Stable Version Total Downloads GitHub Sponsors

This extension provides commands to quickly create and restore database snapshots for Flarum.

Installation

composer require acpl/flarum-db-snapshots

Create Snapshot

Create a database snapshot using the snapshot:create command.

Basic usage:

# Dump to storage/snapshots/snapshot-Y-m-d-His.sql
php flarum snapshot:create
# Dump to storage/snapshots/my-snapshot.sql
php flarum snapshot:create my-snapshot.sql

# Dump to a specific path/file
php flarum snapshot:create /path/to/backup.sql
php flarum snapshot:create ../backups/forum.sql

# Dump with compression (based on extension)
php flarum snapshot:create /backups/dump.sql.gz   # gzip compression
php flarum snapshot:create /backups/dump.sql.bz2  # bzip2 compression

# Create a backup on a live site without locking tables (recommended for production)
php flarum snapshot:create --single-transaction --quick --lock-tables=false

Options for Creation

  • --compress: Compression type (gz or bz2).
  • --include-tables=table1,table2: Include only specific tables in the snapshot.
  • --exclude-tables=table1,table2: Exclude specific tables from the snapshot.
  • --skip-structure: Skip table structure and do not include CREATE TABLE statements.
  • --no-data: Dump schema only, without row data.
  • --skip-auto-increment: Skip AUTO_INCREMENT values.
  • --no-column-statistics: Disable column statistics.
  • --binary-path=/path/to/binary: Custom path to the mysqldump binary.

Most standard mysqldump options are also supported, such as --single-transaction, --quick, and --lock-tables. See the mysqldump documentation for details.

Load Snapshot

Restore a database from an existing snapshot using the snapshot:load command.

Basic usage:

# Select a snapshot interactively from storage/snapshots
php flarum snapshot:load
# Load a specific snapshot from the default storage/snapshots directory
php flarum snapshot:load my-snapshot.sql.gz

# Restore from a standard SQL file
php flarum snapshot:load /path/to/backup.sql
# Restore directly from a compressed file (automatically decompressed on the fly)
php flarum snapshot:load /path/to/backup.sql.gz
php flarum snapshot:load /path/to/backup.sql.bz2

Options for Loading

  • --drop-tables: Drop all existing tables before loading the snapshot. Useful when restoring a full backup into an existing database to avoid conflicts.
  • --force, -f: Bypass the confirmation prompt when using --drop-tables.
  • --binary-path=/path/to/binary: Custom path to the mysql binary.

Requirements

  • mysql and mysqldump binaries
  • gzip for .gz snapshots
  • bzip2 for .bz2 snapshots

Links