Django-pgbulk

Latest version: v3.2.2

Safety actively analyzes 725090 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 6

3.0.0

Breaking Changes

- The `redundant_updates` flag for `pgbulk.upsert` was renamed to `ignore_unchanged`, and the default behavior was flipped by [wesleykendall](https://github.com/wesleykendall) in [#38](https://github.com/Opus10/django-pgbulk/pull/38).

Unlike before, unchanged rows are *not* ignored by default. See [the pull request](https://github.com/Opus10/django-pgbulk/pull/38) for a guide on how to update invocations from version 2.

Features

- Support update expressions, `returning`, and `ignore_unchanged` in `pgbulk.update` by [wesleykendall](https://github.com/wesleykendall) in [#38](https://github.com/Opus10/django-pgbulk/pull/38)

`pgbulk.update`'s interface has reached feature parity with `pgbulk.upsert`, allowing for returning results, ignoring unchanged rows from being updated, and bulk updates with expressions.

- New `pgbulk.copy` function that leverages `COPY ... FROM` by [wesleykendall](https://github.com/wesleykendall) in [#39](https://github.com/Opus10/django-pgbulk/pull/39)

`pgbulk.copy` wraps Postgres's `COPY ... FROM` to insert data. Can be dramatically faster than Django's `bulk_create`.

Changes

- Django 5.1 compatibilty, dropped Django 3.2 / Postgres 12 support by [wesleykendall](https://github.com/wesleykendall) in [#37](https://github.com/Opus10/django-pgbulk/pull/37).

2.5.0

Feature

- Fix typing errors allowing for strict type-safety with Pyright. [Maxwell Muoto, 8158596]

2.4.0

Bug

- Fix operations on virtual and generated fields. [Darlin Alberto, 852a492]

Using non-concrete fields such as django-hashids HashidsField and the new
Generatedfield in Django 5 previously produced errors during upsert and
update operations. These fields are now fully supported.

Trivial

- Update with the latest Python library template. [Wesley Kendall, 6a00a64]

2.3.1

Trivial

- Fix ReadTheDocs builds. [Wesley Kendall, 93965a9]

2.3.0

Feature

- Add `exclude` arguments to `pgbulk.upsert` and `pgbulk.update`. [Maxwell Muoto, cde5904]

Add `exclude` arguments to `pgbulk.upsert` and `pgbulk.update`.

Users can now use `exclude=["field_name"]` to exclude fields for updating or upserting data.

2.2.0

Feature

- Django 5.0 compatibility [Wesley Kendall, e7848ed]

Support and test against Django 5 with psycopg2 and psycopg3.

Page 2 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.