Skip to main content

Native postgres bulk update and upsert operations.

Project description

django-pgbulk, forked from django-manager-utils, provides several optimized bulk operations for Postgres:

  1. update - For updating a list of models in bulk. Although Django provides a bulk_update in 2.2, it performs individual updates for every row and does not perform a native bulk update.

  2. upsert - For doing a bulk update or insert. This function uses postgres UPDATE ON CONFLICT syntax to perform an atomic upsert operation. There are several options to this function that allow the user to avoid touching rows if they result in a duplicate update, along with returning which rows were updated, created, or untouched. Users can also use models.F objects on conflicts.

  3. sync - For syncing a list of models with a table. Does a bulk upsert and also deletes any rows in the source queryset that were not part of the input data.

For more examples, see the django-pgbulk docs.

Compatibility

django-pgbulk is compatible with Python 3.7 - 3.11, Django 3.2 - 4.2, Psycopg 2 - 3 and Postgres 12 - 15.

Documentation

View the django-pgbulk docs here.

Installation

Install django-pgbulk with:

pip3 install django-pgbulk

After this, add pgbulk to the INSTALLED_APPS setting of your Django project.

Contributing Guide

For information on setting up django-pgbulk for development and contributing changes, view CONTRIBUTING.rst.

Primary Authors

  • @wesleykendall (Wes Kendall)

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_pgbulk-1.4.0.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

django_pgbulk-1.4.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file django_pgbulk-1.4.0.tar.gz.

File metadata

  • Download URL: django_pgbulk-1.4.0.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/5.15.0-1030-aws

File hashes

Hashes for django_pgbulk-1.4.0.tar.gz
Algorithm Hash digest
SHA256 1085239e757a35566a2640236765f293fb51d853004ea64686fce6f81bd3484f
MD5 0fe33305dc76bd1585aa491b4fd04e5c
BLAKE2b-256 b82cd3a9b7403a877f6e200b1f5f390fd15bf5da04dfa47333b51b053e48e384

See more details on using hashes here.

File details

Details for the file django_pgbulk-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: django_pgbulk-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.3 Linux/5.15.0-1030-aws

File hashes

Hashes for django_pgbulk-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58f84d635a5874e08e3cbd6af99b0a48357e8c00ec2b1338a60307beb32ec29b
MD5 6ef79e984bfb9d2d61844193e2b68731
BLAKE2b-256 634cf72a7628e994ef33a7936a37a5006415ce6d404ba27ef72e07e8d71221f3

See more details on using hashes here.

Supported by

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