Skip to main content

A Command Line Tool to Backup and Restore SQLite, MySQL and PostgreSQL!

Project description

Cover Photo PyPI-Server Docker Image Build Status Downloads

Gulper

Gulper is a powerful and flexible command-line utility designed for backing up and restoring SQLite, MySQL, and PostgreSQL databases. It offers a range of features to streamline database management tasks, including scheduled backups, multiple storage options, and easy restoration.

Features

  • Multi-Database Support: Backup and restore SQLite, MySQL, and PostgreSQL databases.

  • Flexible Storage Options: Store backups locally or in cloud storage (AWS S3, DigitalOcean Spaces).

  • Scheduled Backups: Automate backups using cron-like expressions.

  • Point-in-Time Recovery: Restore databases to a specific point in time.

  • Compression: Reduce backup size with built-in compression options.

  • Retention Policies: Automatically manage backup retention periods.

  • Logging: Comprehensive logging of all backup and restore activities.

Installation

To install gulper, use the following command

$ pip install gulper

Configuration

Gulper uses a YAML configuration file to manage settings. By default, it looks for the configuration at /etc/config.yaml. You can specify a different path using the --config option.

Example configuration:

temp_dir: /tmp
state_file: /etc/gulper.db

logging:
  level: error
  handler: console
  # path to log file if handler is a file
  path: ~

event:
  retention: 1 month

storage:
  local_01:
    type: local
    path: /opt/backups/

  aws_s3_01:
    type: s3
    access_key_id: your_access_key_id
    secret_access_key: your_secret_access_key
    bucket_name: your_bucket_name
    region: your_region
    path: /

  do_s3_01:
    type: s3
    access_key_id: your_access_key_id
    secret_access_key: your_secret_access_key
    endpoint_url: https://nyc3.digitaloceanspaces.com
    bucket_name: your_bucket_name
    region: nyc3
    path: /team_name/db_backups

schedule:
  hourly:
    expression: 0 * * * *

database:
  db01:
    type: mysql
    host: localhost
    username: root
    password: your_password
    port: 3306
    database:
      - db01
      - db02
    storage:
      - local_01
    schedule: hourly
    options:
      quote-names: True
      quick: True
      add-drop-table: True
      add-locks: True
      allow-keywords: True
      disable-keys: True
      extended-insert: True
      single-transaction: True
      create-options: True
      comments: True
      skip-ssl: True
      no-tablespaces: True
      net_buffer_length: 16384
    retention: 3 months

  db03:
    type: sqlite
    path: /opt/app/opswork.db
    storage:
      - aws_s3_01
    schedule: hourly
    retention: 1 year

Usage

Backup Commands

  • List backups: gulper backup list [--db DB] [--since SINCE] [--json]

  • Run backup: gulper backup run DB [--json]

  • Get backup details: gulper backup get BACKUP_ID [--json]

  • Delete backup: gulper backup delete BACKUP_ID [--json]

Restore Commands

  • Restore from backup: gulper restore run BACKUP_ID [--json]

  • Restore specific database: gulper restore db DB [--json]

Cron Command

  • Run scheduled backups: gulper cron [--daemon]

Log Commands

  • List events: gulper event list [--db DB] [--since SINCE] [--json]

Examples

  1. Backup a MySQL database:

$ gulper backup run db01
  1. Restore a PostgreSQL database from a specific backup:

$ gulper restore run backup_20250319_120000
  1. List all backups for a specific database:

$ gulper backup list --db db01
  1. Run scheduled backups in daemon mode:

$ gulper cron --daemon

Versioning

For transparency into our release cycle and in striving to maintain backward compatibility, Tyran is maintained under the Semantic Versioning guidelines and release process is predictable and business-friendly.

See the Releases section of our GitHub project for changelogs for each release version of Tyran. It contains summaries of the most noteworthy changes made in each release. Also see the Milestones section for the future roadmap.

Bug tracker

If you have any suggestions, bug reports, or annoyances please report them to our issue tracker at https://github.com/Clivern/Gulper/issues

Security Issues

If you discover a security vulnerability within Gulper, please send an email to hello@clivern.com

Contributing

We are an open source, community-driven project so please feel free to join us. see the contributing guidelines for more details.

License

© 2025, Gulper. Released under MIT License.

Gulper is authored and maintained by Clivern.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gulper-0.0.11.tar.gz (33.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gulper-0.0.11-py3-none-any.whl (49.6 kB view details)

Uploaded Python 3

File details

Details for the file gulper-0.0.11.tar.gz.

File metadata

  • Download URL: gulper-0.0.11.tar.gz
  • Upload date:
  • Size: 33.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for gulper-0.0.11.tar.gz
Algorithm Hash digest
SHA256 d1f72a62eceff294a171db8b96956aa488066d71a87f85dfd07250aab7d5b20b
MD5 ebcf64a5981a79716b6bf648d22973da
BLAKE2b-256 19c0b4ec94c03a37a8577a1616a50a7d92591a7aa65913d82aea681c7edb532d

See more details on using hashes here.

File details

Details for the file gulper-0.0.11-py3-none-any.whl.

File metadata

  • Download URL: gulper-0.0.11-py3-none-any.whl
  • Upload date:
  • Size: 49.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for gulper-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 213ae2ff34b6ae5aab380091f825f23cc45ca74a4747fee9474de15c5dd6bb77
MD5 58f24374eb38db6c87965acac428bf27
BLAKE2b-256 8769ad4f92a9086b202c87e0e54e0a3f1da7d8a3591384c380baf382d790c92f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page