Skip to content

android-com-pl/flarum-db-snapshots

Repository files navigation

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

Sponsor this project

  •  
  •  

Contributors

Languages