A Command Line Tool to Backup and Restore SQLite, MySQL and PostgreSQL!
Project description
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
Backup a MySQL database:
$ gulper backup run db01
Restore a PostgreSQL database from a specific backup:
$ gulper restore run backup_20250319_120000
List all backups for a specific database:
$ gulper backup list --db db01
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1f72a62eceff294a171db8b96956aa488066d71a87f85dfd07250aab7d5b20b
|
|
| MD5 |
ebcf64a5981a79716b6bf648d22973da
|
|
| BLAKE2b-256 |
19c0b4ec94c03a37a8577a1616a50a7d92591a7aa65913d82aea681c7edb532d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
213ae2ff34b6ae5aab380091f825f23cc45ca74a4747fee9474de15c5dd6bb77
|
|
| MD5 |
58f24374eb38db6c87965acac428bf27
|
|
| BLAKE2b-256 |
8769ad4f92a9086b202c87e0e54e0a3f1da7d8a3591384c380baf382d790c92f
|