Releases: AmbitionEng/django-pgbulk
Releases · AmbitionEng/django-pgbulk
3.3.0
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
Fixes
- Modify how
typing-extensionsis imported to avoid needing it as runtime dependency by @max-muoto in #56. - Fix return type of
pgbulk.updatewhen there is no input and returning is notNoneby @wesleykendall in #57.
3.2.3
3.2.2
Changes
- Use
cursor.connectionin psycopg2 to avoid issues caused by agents like NewRelic that wrap cursor objects by @wesleykendall in #51.
3.2.1
Changes
- Changed project ownership to
AmbitionEngby @wesleykendall in #50.
3.2.0
Changes
- Added Python 3.13 support, dropped Python 3.8. Added Postgres17 support by @wesleykendall in #49.
3.1.0
Feature
- Add support for db defaults in
pgbulk.upsertby @max-muoto in #42. - Support binary mode for
pgbulk.copyby @max-muoto in #45.
3.0.2
3.0.1
Trivial
- Add overloads on
upsert,aupsert,update, andaupdateto improve type-checking onreturning=...by @max-muoto in #40.
3.0.0
Breaking Changes
-
The
redundant_updatesflag forpgbulk.upsertwas renamed toignore_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, andignore_unchangedinpgbulk.updateby @wesleykendall in #38pgbulk.update's interface has reached feature parity withpgbulk.upsert, allowing for returning results, ignoring unchanged rows from being updated, and bulk updates with expressions. -
New
pgbulk.copyfunction that leveragesCOPY ... FROMby @wesleykendall in #39pgbulk.copywraps Postgres'sCOPY ... FROMto insert data. Can be dramatically faster than Django'sbulk_create.
Changes
- Django 5.1 compatibilty, dropped Django 3.2 / Postgres 12 support by @wesleykendall in #37.