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

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_litestream-0.5.11.post4.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.post4.tar.gz
Algorithm Hash digest
SHA256 0e3d4dd8865d922747703d53ec0cfd2a61cbd6b144f26aae84c987430d8d697e
MD5 986cf9bd5e20095c9d5afd98a98bb1aa
BLAKE2b-256 baa7b82c99e9eaa11d0e5f2ca186d948b88a338dad98dbc4935f37907b70738f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for django_litestream-0.5.11.post4-py3-none-manylinux2014_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bdb16d76135800cc324211ea889f79fa6e838fbfa49be478ace6d2070f0a8483
MD5 6b4a4270b13df79e2540ceb5fbfa87cd
BLAKE2b-256 389b92ca62f25ebfacbbacc9c1e3b7f0ba20a7be3148769ea67ae7ff6a0908df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for django_litestream-0.5.11.post4-py3-none-manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 9e8bee8056a455ab512bed099b3a75886fe31eff969b04a501f7dff945a6c51f
MD5 afe0a5c32497023fb5ba4d675148d50e
BLAKE2b-256 4141d94791c846a811a7c863809331781c0ea0825b6218e97eb88dec1bb756aa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for django_litestream-0.5.11.post4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 320bc97cb06bd5cff05f4c989ad01b3c728fa2a52ba00bbb0d0169a82745b55f
MD5 4bb312acdff857aac7825eaf0c993d1d
BLAKE2b-256 677b055685d09d7bedd89a830a168850b8a9bca67c7682ea107a1acc7fde0816

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for django_litestream-0.5.11.post4-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7137121f5eaa92cb7d3c3daee2579d46ac1d59f29da3e605575bab4d89847c41
MD5 64bbc4ec3fa46199cc44db26dbc67333
BLAKE2b-256 960fecd04c9a797b8941b2c047e2332fe5f8378d82cdb89a938e99c78dd32b47

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for django_litestream-0.5.11.post4-py3-none-any.whl
Algorithm Hash digest
SHA256 91643b3bc92758b46632095823c7d83b694ac91f5f7bbc3d90aea7c4029c704d
MD5 0335ce6cdf79ca5c02cda4c482282746
BLAKE2b-256 321b886d2d0ad9b2c40ad734454441fa09100f17b2ebe93835905dad28bccdf0

See more details on using hashes here.

Provenance

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