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

INSTALLED_APPS = [
    "django_litestream",
    "django_litestream_vfs",  # loads VFS extension on startup
]

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.post2.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.post2-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.post2-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.post2-py3-none-macosx_11_0_arm64.whl (36.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

django_litestream-0.5.11.post2-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.post2-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_litestream-0.5.11.post2.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.post2.tar.gz
Algorithm Hash digest
SHA256 72737bee6b9872aefbb2b6b79c6150ef051853750b6e64eac7e9c21dc58814e4
MD5 762fc144dea3cbf5cbe68603cfe54298
BLAKE2b-256 056e0496a1fab3fa2ce4ed89b57339e41bda9a7d77013cbb101d31b06ac4d94c

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post2.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.post2-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post2-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4255bc8ea6e01ed041ac6f7052215ac465ba49ee1ad190a2b31ec7d84251da1c
MD5 1b99a187f2e7310c69d3a9df6d3b8060
BLAKE2b-256 ad44c57e4b7a22fdb711144f710467bc4b95651ed227ab05c0a4f96abdaee2f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post2-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.post2-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post2-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 848a719452cc582d786fc4d337b2f445ef4d9986c065f52ed3aaeffc74b62928
MD5 7e4611c272ecac90697feddcf39b6421
BLAKE2b-256 47f1a915967aa1fae13ceefaa3cb32d5ce766d8f3fc17a6173a5ceabd33d2131

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post2-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.post2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4088a087561ca82aedf4b40b43bc937c649b176999b4af644c7374a98576399e
MD5 f04c63d4123fb08d061e4600138ab2b4
BLAKE2b-256 e50915708ad66a20eda94cf8a525502ec639660c50f8f527003e8e918103b31f

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post2-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.post2-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post2-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 671161ec7b59e80e8651ed3d662aaaa96a4ca01bb2eb89c49ff2ca3d636758a0
MD5 6a80f4bdcc5f69e6199f74fe09b5af28
BLAKE2b-256 ec1f3280b2d8db9ab6f9012b0f3ca7a347625b6e3d14b75f73aeba844311d463

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post2-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.post2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_litestream-0.5.11.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 cca95355c1124fa2dab90ce673ac50abff42dfbbbdf82435a0fea9e1e5bace8a
MD5 274e9d465e65f25b39003ffa73bd6e95
BLAKE2b-256 d4dcf1a2845954039e2e23d0222b0686a2aeb3c8a159983c0706ee2106a59d6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_litestream-0.5.11.post2-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