Skip to main content

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

Project description

fastapi-dbbackup

PyPI version License: MIT

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

View on PyPI

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.5.tar.gz (13.8 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.5-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastapi_dbbackup-0.1.5.tar.gz
  • Upload date:
  • Size: 13.8 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.5.tar.gz
Algorithm Hash digest
SHA256 945c58e32094fb3807250dd88f67cb2ce7fc84b254827a4e66d63c09f4e0d111
MD5 606a12a1e83fa612d582d9a59456f519
BLAKE2b-256 ae758fe65c30f54ff67e33f0da3070c0fc492103cb08d69c2bd94bae7128dd64

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_dbbackup-0.1.5.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.5-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_dbbackup-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 73aa3a61a63c6db3c90e327ff50698116909f5a1ea0f4c21f0be581274c24e41
MD5 e33cffdaa17d95834e25b15065470b99
BLAKE2b-256 1fd1c0e56a0aa059f574a9a0121289c1633bb311afd03df2ec881598937076fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_dbbackup-0.1.5-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