Skip to main content

Database-native backup tool for FastAPI, SQLAlchemy, and SQLModel projects.

Project description

fastapi-dbbackup

Database-native backup tool for FastAPI, SQLAlchemy, and SQLModel projects. Similar to django-dbbackup.

Features

  • Database Support: SQLite, PostgreSQL, MySQL (SQL-only).
  • Storage Support: Local File System, AWS S3, DigitalOcean Spaces.
  • Direct Streaming: Direct pipe from database to cloud for Postgres/MySQL (No local disk usage).
  • Compression: Gzip compression supported (including streaming compression).
  • Security: Secure credential handling via environment variables (no passwords in process lists).
  • Restoration: Easy database restoration from backups.
  • Retention: Automatic purging of old backups.
  • CLI: Intuitive CLI with backup, restore, and list commands.

Database Version Support

Database Supported Versions Requirement
PostgreSQL All (9.x - 17+) pg_dump client version must be ≥ Server version
MySQL All (5.7, 8.0+) mysqldump client version must be ≥ Server version
SQLite All No special requirements

Installation

pip install fastapi-dbbackup
# If using UV:
uv add fastapi-dbbackup

Configuration

The tool is configured via environment variables. It automatically loads variables from a .env file in your current directory or any parent directory.

Variable Description Default
DATABASE_URL SQLAlchemy-style URL. Required for connection details. Credentials and host are optional if your environment supports it (e.g. Trust auth or local sockets). -
DBBACKUP_ENGINE Database engine (postgres, mysql, sqlite, or auto) auto
DBBACKUP_DIR Local or Cloud directory for backups backups
DBBACKUP_STORAGE Storage backend (local or s3) local
DBBACKUP_COMPRESS Whether to compress backups true
DBBACKUP_RETENTION_DAYS Number of days to keep backups (0 = forever) 0
DBBACKUP_MAX_BACKUPS Maximum number of backups to keep (0 = unlimited) 0
AWS_S3_ACCESS_KEY_ID AWS/DigitalOcean access key ID -
AWS_S3_SECRET_ACCESS_KEY AWS/DigitalOcean secret access key -
AWS_S3_ENDPOINT_URL Custom endpoint URL (e.g. for DigitalOcean Spaces) -
AWS_S3_REGION S3 region name -
AWS_STORAGE_BUCKET_NAME S3 bucket name -
AWS_S3_DEFAULT_ACL Uploaded file ACL (private or public-read) private

Usage

Backup

fastapi-dbbackup backup
# if using UV:
uv run fastapi-dbbackup backup

Restore

Restore the latest backup:

fastapi-dbbackup restore
# if using UV:
uv run fastapi-dbbackup restore

Restore a specific backup:

fastapi-dbbackup restore default-20260131-120000.dump.gz

List Backups

fastapi-dbbackup list
# if using UV:
uv run fastapi-dbbackup list

Docker Usage

Yes! fastapi-dbbackup works great with Docker. However, because it uses native database tools for maximum reliability, you must ensure the appropriate CLI clients are installed in your container. Check Docker Usage

Tips for Docker:

  • Storage: Use DBBACKUP_STORAGE=s3 to ensure your backups survive container restarts.
  • Volumes: If using local storage, mount a volume to DBBACKUP_DIR (default: backups).
  • Database URL: Ensure your DATABASE_URL uses the service name defined in your docker-compose.yml (e.g., postgres://user:pass@db:5432/dbname).

License

MIT License. See LICENSE for details.

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

fastapi_dbbackup-0.1.3.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

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

fastapi_dbbackup-0.1.3-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_dbbackup-0.1.3.tar.gz.

File metadata

  • Download URL: fastapi_dbbackup-0.1.3.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fastapi_dbbackup-0.1.3.tar.gz
Algorithm Hash digest
SHA256 23ec17f1f4ee2e4bb620977b52f7665a05a67b456bc256e23fa766c11324c73d
MD5 e5bb1e7c1fe2afd6327c90267e62a56e
BLAKE2b-256 e8ca21a44eee77280a50dd0e07d5c559fd202fb0b5f173f22a89445ff9bfffb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_dbbackup-0.1.3.tar.gz:

Publisher: publish.yml on rajsolodev/fastapi-dbbackup

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastapi_dbbackup-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_dbbackup-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 91a40d90b1704321b62525d0b75d33ce872684da3f836733cd6bbc0c9a35184c
MD5 1b1637c83d379b4eee6d59a56d9804e6
BLAKE2b-256 6c659b4508177eb3cb0c49181b79eb329c4fdba4f69b038f5f0489aaa5a960b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_dbbackup-0.1.3-py3-none-any.whl:

Publisher: publish.yml on rajsolodev/fastapi-dbbackup

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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