Skip to main content

A Django database backend for pg8000

Project description

Django pg8000

A Django database backend for the pg8000 driver for PostgreSQL.

Workflow Status Badge

Installation And Usage

Install with: pip install django_pg8000

Set the Django DATABASES to something like:

DATABASES = {
    "default": {
        "ENGINE": "django_pg8000",
        "HOST": "localhost",
        "PORT": 5432,
        "NAME": "django",
        "USER": "postgres",
        "OPTIONS": {},
    },
}

Contributing

At the moment Django pg8000 doesn't pass all of the tests, so if you'd like to contribute, please send a Pull Request that fixes a particular test.

Testing

  • git clone https://github.com/django/django.git
  • cd tests
  • python -m pip install -e ..
  • python -m pip install -r requirements/py3.txt
  • ./runtests.py databases

This will run the standard tests against the SQLite backend.

Create a file at django/django/conf/test_pg8000.py:

DATABASES = {
    "default": {
        "ENGINE": "django_pg8000",
        "HOST": "localhost",
        "PORT": 5432,
        "NAME": "django",
        "USER": "postgres",
        "OPTIONS": {},
    },
    "other": {
        "ENGINE": "django_pg8000",
        "HOST": "localhost",
        "PORT": 5432,
        "NAME": "django_other",
        "USER": "postgres",
        "OPTIONS": {},
    },
}

SECRET_KEY = "django_tests_secret_key"

# Use a fast hasher to speed up tests.
PASSWORD_HASHERS = [
    "django.contrib.auth.hashers.MD5PasswordHasher",
]

DEFAULT_AUTO_FIELD = "django.db.models.AutoField"

USE_TZ = False

Then run ./runtests.py --failfast --parallel=1 --exclude-tag=psycopg_specific --settings=django.conf.test_pg8000

Some tests in the Django suite are specific to the pyscopg driver, so these can be marked with the psycopg_specific tag.

If tests fail then you may need to drop the databases that are left hanging around by doing something like: psql --username=postgres -c "DROP DATABASE IF EXISTS test_django;" -c "DROP DATABASE IF EXISTS test_django_other;"

Doing A Release Of Django pg8000

  • git tag -a x.y.z -m "version x.y.z"
  • rm -r dist
  • python -m build
  • twine upload dist/*

Release Notes

Version 0.0.5

  • Now requires pg8000 1.30.4 or higher

Version 0.0.4

  • Various bug fixes, so a few more tests are passed.

Version 0.0.3

  • Rather than using the vendor 'postgresql', use 'postgresql_pg8000'. Otherwise Django assumes that psycopg is installed.

Version 0.0.2

  • Add GitHub Actions tests

Version 0.0.1

  • Initial release.

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_pg8000-0.0.5.tar.gz (25.7 kB view hashes)

Uploaded Source

Built Distribution

django_pg8000-0.0.5-py3-none-any.whl (27.2 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