Skip to content

Releases: AmbitionEng/django-pgbulk

3.3.0

30 Nov 23:30
cac3300

Choose a tag to compare

Changes

  • Drop Python 3.9 support, add Python 3.14 support, add Postgres 18 support, add Django 6.0 support by @wesleykendall in #58

3.2.4

02 Sep 16:13
e82a8b5

Choose a tag to compare

Fixes

  • Modify how typing-extensions is imported to avoid needing it as runtime dependency by @max-muoto in #56.
  • Fix return type of pgbulk.update when there is no input and returning is not None by @wesleykendall in #57.

3.2.3

17 Aug 00:56
33519cd

Choose a tag to compare

Fixes

  • Includes typing-extensions as a direct dependency to avoid import errors by @cjwatson in #54.

3.2.2

02 Jan 22:21
62eccce

Choose a tag to compare

Changes

  • Use cursor.connection in psycopg2 to avoid issues caused by agents like NewRelic that wrap cursor objects by @wesleykendall in #51.

3.2.1

16 Dec 01:54
473d615

Choose a tag to compare

Changes

3.2.0

02 Nov 18:28
86c890e

Choose a tag to compare

Changes

  • Added Python 3.13 support, dropped Python 3.8. Added Postgres17 support by @wesleykendall in #49.

3.1.0

13 Oct 21:02
9946e8d

Choose a tag to compare

Feature

3.0.2

02 Oct 05:42
18dff00

Choose a tag to compare

Trivial

  • Remove elipses defaults on overloads to avoid incorrect resolution by @max-muoto in #41.

3.0.1

07 Sep 01:54
2891aba

Choose a tag to compare

Trivial

  • Add overloads on upsert, aupsert, update, and aupdate to improve type-checking on returning=... by @max-muoto in #40.

3.0.0

25 Aug 21:33
798415a

Choose a tag to compare

Breaking Changes

  • The redundant_updates flag for pgbulk.upsert was renamed to ignore_unchanged, and the default behavior was flipped by @wesleykendall in #38.

    Unlike before, unchanged rows are not ignored by default. See the pull request for a guide on how to update invocations from version 2.

Features

  • Support update expressions, returning, and ignore_unchanged in pgbulk.update by @wesleykendall in #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 in #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 in #37.