Skip to main content

A set of simple utilities for Django apps running on Fly.io

Project description

django-flyio

PyPI - Version PyPI - Python Version


A set of simple utilities for Django apps running on Fly.io.

Note: This package is designed to work with V2 Apps. It has not been tested with V1 Apps.

Installation

pip install django-flyio

Usage

Multi-Region Fly Postgres

  1. Set your DATABASES settings to call get_db_config from django_flyio.db.

    This function reads the PRIMARY_REGION and FLY_REGION environment variables to determine the Fly region the primary database is in and the Fly region the app is currently running in.

  2. Add django_flyio.routers.FlyDBReplicaRouter to your DATABASE_ROUTERS settings.

    This router reads whether the DATABASES setting has a replica key and, if so, routes reads to the replica database.

# settings.py
from django_flyio.db import get_db_config

DATABASES = get_db_config()

DATABASE_ROUTERS = ["django_flyio.routers.FlyDBReplicaRouter"]

Middleware

To set the Fly-Server header containing the Fly server and region that served the request, add django_flyio.middleware.FlyResponseMiddleware to your MIDDLEWARE settings.

# settings.py
MIDDLEWARE = [
    # ...
    'django_flyio.middleware.FlyResponseMiddleware',
]

License

django-flyio is distributed under the terms of the MIT 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_flyio-0.1.1.tar.gz (8.9 kB view hashes)

Uploaded Source

Built Distribution

django_flyio-0.1.1-py3-none-any.whl (5.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page