Skip to main content

Redshift database backend for Django

Project description

This is a Amazon Redshift database backend for Django.

Jazzband Read the Docs (master) PyPI PyPI - Python Version PyPI - Django Version License GitHub Actions Coverage GitHub stars

Documentation

Django settings

ENGINE for DATABASES is ‘django_redshift_backend’. You can set the name in your settings.py as:

DATABASES = {
    'default': {
        'ENGINE': 'django_redshift_backend',
        'NAME': '<your database name>',
        'USER': '<your database username>',
        'PASSWORD': '<your database password>',
        'HOST': '<your database hostname>',
        'PORT': '5439',
    }
}

For more information, please refer: Documentation

LICENSE

Apache Software License

CHANGES

3.0.0 (2022/02/27)

General:

  • #87 Drop py2 wheel tag from release package file.

  • Add CODE_OF_CONDUCT.rst The linked text which has been referred to from CONTRIBUTING.rst is now included.

Incompatible Changes:

  • #97 To specify SORTKEY for Redshift, you must use django_redshift_backend.SortKey for Model.Meta.ordering instead of bearer string.

    IMPORTANT: With this change, existing migration files that specify ordering are not affected. If you want to apply SortKey to your migration files, please comment out the ordering option once and run makemigrations, then comment in the ordering option and run makemigrations again.

  • #97 django_redshift_backend.distkey.DistKey is moved to django_redshift_backend.DistKey. However old name is still supported for a compatibility.

  • #97 Now django-redshift-backend doesn’t support can_rollback_ddl. Originally, Redshift did not support column name/type(size) changes within a transaction. Please refer https://github.com/jazzband/django-redshift-backend/issues/96

  • #97 changed the behavior of implicit not null column addition. previously, adding a not null column was implicitly changed to allow null. now adding not null without default raises a programmingerror exception.

Features:

  • #82 Add Python-3.10 support.

  • #98 Add Django-4.0 support.

  • #82 Drop Django-3.0 support.

  • #98 Drop Django-3.1 support.

  • #90,#13,#8: Support manage.py inspectdb, also support working with the django-sql-explorer package. Thanks to Matt Fisher.

  • #63 Support changing a field from NOT NULL to NULL on migrate / sqlmigrate.

  • #97 Support VARCHAR size changing for UNIQUE, PRIMARY KEY, FOREIGN KEY.

  • #97 Support backward migration for DROP NOT NULL column wituout DEFAULT. One limitation is that the DEFAULT value is set to match the type. This is because the only way for Redshift to add NOT NULL without default is to recreate the table.

Bug Fixes:

  • #92,#93: since django-3.0 sqlmigrate (and migrate) does not work.

  • #37: fix Django contenttype migration that cause ProgrammingError: cannot drop sortkey column “name” exception.

  • #64: fix Django auth migration that cause NotSupportedError: column “content_type__app_label” specified as distkey/sortkey is not in the table “auth_permission” exception.

2.1.0 (2021/09/23)

General:

  • #76 fix test failing on django-dev with py36,py37

  • #77 Mondernize setup.cfg and pyproject.toml

Features:

  • #81 Add Django 3.2 support.

Bug Fixes:

  • #80 uuid field doesn’t work correctly with django 2.x and 3.x. Thanks to xavier-lr.

2.0.1 (2021/03/07)

Bug Fixes:

  • #74: set supports_aggregate_filter_clause=False (since Django-2.0) to disable FILTER WHERE syntax. Thanks to Michael Wheeler.

  • #73: fix broken feature flags since Django-3.0: can_return_columns_from_insert and can_return_rows_from_bulk_insert. Thanks to Agustín Magaña.

2.0.0 (2021/01/04)

General:

Features:

  • Drop Python 2.7 and 3.5 support.

  • Drop Django 1.11, 2.0 and 2.1 support.

  • #68 Add Python 3.8 and 3.9 support.

  • #68 Add Django 3.0 and 3.1 support.

Bug Fixes:

  • #69 Let users choose between psycopg2 binary or source. Thkanks to Bruno Alla.

  • #65,#66 Deprecation warning due to invalid escape sequences. Thanks to Karthikeyan Singaravelan.

Documentation:

  • #67 Just a typo cleanup from refs.rst. Thanks to Kostja P.

1.1.0 (2019/08/02)

  • #60 Change dependencies to support Python 3.7 Thanks to Asher Foa.

1.0.0 (2019/01/29)

General:

  • The first release from Jazzband organization.

  • Using Development Status :: 5 - Production/Stable.

  • All GitHub/Travis/other URLs in this product has been migrated to /jazzband/.

New Features:

  • #56 Support Django 2.1.

  • #57 Support Python 3.7

Bug Fixes:

  • #53,#54: UUIDField django model field will cause clash. Thanks to Corentin Dupret.

Development:

  • Adopt setuptools_scm for versioning from git tag.

0.9.1 (2018-09-29)

0.9 (2018-07-24)

  • #35: Drop support for Django 1.8, 1.9 and 1.10.

  • #40: Support Django 2.0.

  • #42: Support DISTKEY. Thanks to Benjy Weinberger.

  • Documentation: http://django-redshift-backend.rtfd.io/

  • Change LICENSE from ‘BSD License’ to ‘Apache Software License’

0.8.1 (2018-06-19)

  • #38: Fix 0.8 doesn’t compatible with Python 2. Thanks to Benjy Weinberger.

0.8 (2018-06-01)

Incompatible Changes:

  • #23,#10: Redshift support time zones in time stamps for migration

    IMPORTANT: With this change, the newly created DateTimeField column will be timestamp with timezone (TIMESTAMPTZ) by migration. Therefore, the existing DateTimeField and the new DateTimeField will have different data types as a redshift schema column type. There are no migration feature by django-redshift-backend. see also: https://github.com/jazzband/django-redshift-backend/pull/23

New Features:

  • #20,#26: Support for sortkey. Thanks to Maxime Vdb and Kosei Kitahara.

  • #24: Add UUIDField support. Thanks to Sindri Guðmundsson.

  • #14: More compat with redshift: not use SELECT DISTINCT ON.

Bug Fixes:

  • #15,#21: More compat with redshift: not use CHECK. Thanks to Vasil Vangelovski.

  • #18: Fix error on migration with django-1.9 or later that raises AttributeError of ‘sql_create_table_unique’.

  • #27: annotate() does not work on Django-1.9 and later. Thanks to Takayuki Hirai.

Documentation:

0.7 (2017-06-08)

  • Drop Python-3.4

  • Drop Django-1.7

  • Support Python-3.6

  • Support Django-1.11

0.6 (2016-12-15)

  • Fix crush problem when using bulk insert.

0.5 (2016-10-05)

  • Support Django-1.10

  • #9: Add support for BigAutoField. Thanks to Maxime Vdb.

  • Fix crush problem on sqlmigrate when field modified.

0.4 (2016-05-17)

  • Support Python-3.4 and 3.5

  • #7: Restore support django-1.7. Version 0.3 doesn’t support django-1.7.

  • #4: More compat with redshift: not use SET CONSTRAINTS. Thanks to Maxime Vdb.

  • #6: More compat with redshift: not use sequence reset query. Thanks to Maxime Vdb.

  • #5: Add REDSHIFT_VARCHAR_LENGTH_MULTIPLIER settings. Thanks to Maxime Vdb.

  • Support column type changing on migration.

0.3 (2016-05-14)

  • #3: more compat with Redshift (AutoField, DateTimeField, Index). Thanks to Maxime Vdb.

  • More compat with redshift: add TextField

  • More compat with redshift: not use DEFERRABLE, CONSTRAINT, DROP DEFAULT

  • More compat with redshift: support modify column

0.2.1 (2016-02-01)

  • “SET TIME_ZONE” warning is changed as debug log for ‘django.db.backend’ logger.

0.2 (2016-01-08)

  • Disable “SET TIME_ZONE” SQL execution even if settings.TIME_ZONE is specified.

0.1.2 (2015-06-5)

  • Support Django-1.8

0.1.1 (2015-03-27)

  • Disable “SELECT FOR UPDATE” SQL execution.

0.1 (2015-03-24)

  • Support Django-1.7

  • Support “INSERT INTO” SQL execution without “RETURNING” clause.

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-redshift-backend-3.0.0.tar.gz (50.3 kB view details)

Uploaded Source

Built Distribution

django_redshift_backend-3.0.0-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file django-redshift-backend-3.0.0.tar.gz.

File metadata

  • Download URL: django-redshift-backend-3.0.0.tar.gz
  • Upload date:
  • Size: 50.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for django-redshift-backend-3.0.0.tar.gz
Algorithm Hash digest
SHA256 4b9876108ecec10e1a5b25d292a7f0e490d8943dee294fe7e25b244817c07d8c
MD5 1b7cd747f3ef7b122df1bc53cc77da8d
BLAKE2b-256 5a02b5549d91bacdd3b93facc857d0313dc53a8e1e63fea43adc14ef42c9a3e2

See more details on using hashes here.

File details

Details for the file django_redshift_backend-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: django_redshift_backend-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for django_redshift_backend-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 802eb87c9116a3fe0f1543b0bcd93073a1dd92fce353827a5c7386a432dafe31
MD5 35df9dbe76b146f3474bf96c100c6b4e
BLAKE2b-256 b024f2a829f6c3eae03043cf8623274c62f5c7b38a3ac758e5fc7fe63d0588f1

See more details on using hashes here.

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