Skip to main content

Django integration with litestream, a a standalone streaming replication tool for SQLite.

Project description

django-litestream

PyPI - Version PyPI - Python Version PyPI - Versions from Framework Classifiers MIT License

Django integration for Litestream, the SQLite replication tool. The Litestream binary is bundled in platform-specific wheels — no manual download needed. All upstream commands are available as python manage.py litestream <command>.

Note: This package tracks Litestream's upstream version. The initial release is 0.5.11, matching Litestream v0.5.11. Wrapper-only fixes (no Litestream update) use PEP 440 post-releases like 0.5.11.post1.

Installation

pip install django-litestream

Add to INSTALLED_APPS:

INSTALLED_APPS = [
    "django_litestream",
]

The binary is installed automatically on supported platforms (Linux/macOS x86_64 & arm64). On unsupported platforms, set a custom path:

LITESTREAM = {
    "bin_path": "/usr/local/bin/litestream",
}

Configuration

Configuration is generated dynamically from Django settings — no YAML file needed.

# settings.py
LITESTREAM = {
    "path_prefix": "",      # prepended to S3 replica paths
    "bin_path": "...",      # custom binary path (optional)
    "dbs": [                # databases to replicate
        {"path": "default"},
    ],
}

All Litestream config options are supported (addr, logging, mcp-addr, access-key-id, etc.).

Database aliases

Use Django database aliases instead of file paths wherever db_path is required:

python manage.py litestream restore default        # instead of /path/to/db.sqlite3
python manage.py litestream sync default

Auto-generated replicas

If no replica is specified for a database, an S3 replica is auto-generated using environment variables:

LITESTREAM = {
    "dbs": [{"path": "default"}],
}
# Uses: LITESTREAM_REPLICA_BUCKET, LITESTREAM_ACCESS_KEY_ID, LITESTREAM_SECRET_ACCESS_KEY

Explicit replica config:

LITESTREAM = {
    "dbs": [
        {
            "path": "default",
            "replica": {
                "type": "s3",
                "bucket": "my-bucket",
                "path": "db.sqlite3",
            },
        },
    ],
}

Multiple databases with path_prefix

DATABASES = {
    "default": {"ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "db.sqlite3"},
    "cache":  {"ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "cache.sqlite3"},
}

LITESTREAM = {
    "path_prefix": "myproject",
    "dbs": [
        {"path": "default"},           # → myproject/db.sqlite3
        {
            "path": "cache",
            "replica": {
                "type": "s3",
                "bucket": "my-cache-bucket",
                "path": "cache.sqlite3",
            },
        },
    ],
}

Custom commands

These commands are unique to django-litestream — they don't exist in upstream Litestream.

litestream config

Display the generated configuration in YAML format.

python manage.py litestream config

Useful for verifying your setup before running replication.

litestream verify

Checks backup integrity end-to-end: writes a verification row, waits for replication, restores the latest backup, and confirms the row exists.

python manage.py litestream verify default

Upstream commands

All Litestream commands are exposed as management commands. Run python manage.py litestream to see the full list. Key notes:

  • replicate: Run in production via a process manager. Use -exec to wrap your application server.
  • restore: Supports -timestamp, -generation, -index for point-in-time recovery.
  • Daemon control (info, list, register, unregister, start, stop): Communicate with a running replicate daemon over IPC.

The only difference from upstream is that Django database aliases work anywhere db_path is expected.

VFS Read Replicas

Read-only access to cloud-stored replicas without downloading the entire database. Pages are fetched on-demand.

pip install django-litestream[vfs]

This installs both django-litestream and django-litestream-vfs (the VFS extension and Python integration).

Setup

# settings.py
from django_litestream_vfs import get_vfs_databases

LITESTREAM = {
    "dbs": [{"path": "default"}],
    "vfs": {
        "prod_replica": "s3://mybucket/db.sqlite3",
    },
}

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.sqlite3",
        "NAME": BASE_DIR / "db.sqlite3",
    },
    **get_vfs_databases(),  # adds VFS replicas
}

Usage

User.objects.using("prod_replica").all()  # read-only, on-demand page fetch

VFS replicas are read-only. Only x86_64 and arm64 supported. Multiple storage backends supported (S3, GCS, Azure Blob).

License

MIT. The bundled Litestream binary uses the Apache 2.0 license.

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

django_litestream-0.5.11.post5.tar.gz (10.5 kB view details)

Uploaded Source

Built Distributions

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

django_litestream-0.5.11.post5-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl (37.7 MB view details)

Uploaded Python 3musllinux: musl 1.1+ x86-64

django_litestream-0.5.11.post5-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl (34.9 MB view details)

Uploaded Python 3musllinux: musl 1.1+ ARM64

django_litestream-0.5.11.post5-py3-none-macosx_11_0_arm64.whl (36.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

django_litestream-0.5.11.post5-py3-none-macosx_10_9_x86_64.whl (38.8 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

django_litestream-0.5.11.post5-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file django_litestream-0.5.11.post5.tar.gz.

File metadata

  • Download URL: django_litestream-0.5.11.post5.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for django_litestream-0.5.11.post5.tar.gz
Algorithm Hash digest
SHA256 c9490e63d57c12243042e18188536bb11b1c15e438cb409f045a25115685de78
MD5 34f41309e16c6be621969a260755b7ee
BLAKE2b-256 5c955cefae09e35ac0912e341f21caf741db6c4e293106db3caf225408f6d8d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post5.tar.gz:

Publisher: publish.yml on Tobi-De/django-litestream

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

File details

Details for the file django_litestream-0.5.11.post5-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post5-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bfc7c5b8e45a7171c62a4bb877522f2c4bd6f8d2c54beeef0b894a7d92d15dad
MD5 f46ee41dda112b5be58b1070de6aeacf
BLAKE2b-256 1383d0c609729a1412bebc19e0c39e717ce717457560d44e3c1c7bf0bc573ad9

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post5-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

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

File details

Details for the file django_litestream-0.5.11.post5-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post5-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c17251a03eca0dd3c640852ca34cc60d220277bee5d00d76ee3df38ede20b649
MD5 1d8aa828825d9520d3e446014f8ce7c5
BLAKE2b-256 5b2b4c066f2fba8b7db7386273fb759e044d0a02168223fe4950c1e3eff30bb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post5-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

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

File details

Details for the file django_litestream-0.5.11.post5-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post5-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03280dc57d136482fe34fccad41bf2df798bef3a45ffc9857119f398d43db7be
MD5 aec93d5b11be8e9b6859225af0bce5df
BLAKE2b-256 02f61a946b7d2991863c1c8fde2b894acf5399f34fa59a4fb226c325ad5ebe71

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post5-py3-none-macosx_11_0_arm64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

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

File details

Details for the file django_litestream-0.5.11.post5-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post5-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 80a06c18309e1f7e8f1af8d515dff54263eac6137b1d0245a42bf80104ccafd5
MD5 ccc06512fde82f358cbe8bd601538d4a
BLAKE2b-256 c4a7d81eee9938a337393d66eb6821722b2b6d46159a3afdddd35586393e4ae6

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post5-py3-none-macosx_10_9_x86_64.whl:

Publisher: publish.yml on Tobi-De/django-litestream

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

File details

Details for the file django_litestream-0.5.11.post5-py3-none-any.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post5-py3-none-any.whl
Algorithm Hash digest
SHA256 91dc8abba1c5407c5ffca1d4b3b5745c814deeb2bb27990eaaeb5b2fe57ee74e
MD5 519a4b0bda88dd4d88bfddfc9a5c6810
BLAKE2b-256 b913d4022365105ee9458e9884d45e0735c7c50d90ce551be14f84dd6aa0af59

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post5-py3-none-any.whl:

Publisher: publish.yml on Tobi-De/django-litestream

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