Skip to content

Releases: tortoise/tortoise-orm

0.22.1

25 Nov 10:04
Compare
Choose a tag to compare

Fixed

  • Fix unable to use ManyToManyField if OneToOneField passed as Primary Key (#1783)
  • Fix sorting by Term (e.g. RawSQL) (#1788)

Changed

  • Refactor select query parametrisation (#1777)

0.22.0

19 Nov 23:27
Compare
Choose a tag to compare

Added

  • JSONField adds optional generic support, and supports OpenAPI document generation by specifying field_type as a pydantic BaseModel (#1763)
  • Add table_name_generator attribute to Tortoise.init for dynamic table name generation (#1770)
  • Support for annotation and joins F() expressions (#1761) (#1765)
  • Allow use of annotate fields within Case-When expression (#1748)
  • Added new queryset methods: last(), latest(), earliest() (#1754) (#1756)

Fixed

  • Fix enums not quoted, allowing using of str enums for filters (#1776)
  • Primary key field should not be nullable in pydantic schema (#1778)
  • Fix ambiguous column name when grouping with joining (#1766)
  • Fix same model returned by pydantic_model_creator calls with different arguments (#1741)

Changed

  • Change old pydantic docs link to new one (#1775).
  • Refactored pydantic_model_creator, interface not changed (#1763)
  • Values are no longer validated to be right type upon loading from database (#1750)
  • Refactored private field names in queryset classes (#1751)

0.21.7

14 Oct 08:04
0ddf8d3
Compare
Choose a tag to compare

Fixed

  • Fix unittest error with pydantic2.9 (#1734)
  • Fix bug when using annotate and count at the same time but the annotation does not match anything, leading to an IndexError (#1707)
  • Added missing field_type for TimeDeltaField (#1462) (#1699)
  • improve jsonfield type hint (#1700)
  • Fix bug in tortoise.models.Model When a QuerySet uses the only function and then uses the print function to print the returned result, an AttributeError is generated (#1724)
  • Update the pylint plugin to latest astroid version (#1708)

Added

  • Add POSIX Regex support for PostgreSQL and MySQL (#1714)
  • support app=None for tortoise.contrib.fastapi.RegisterTortoise (#1733)

0.21.6

17 Aug 08:35
Compare
Choose a tag to compare

Fixed

  • Fix bug in pydantic_model_creator when a foreign key is not included in include param. (#1430)
  • Fix bug in contrib.sanic.register_tortoise causing a deadlock when using asyncpg and > 1 workers (#1696)
  • Open psycopg pool with .open() to remove deprecated warning (#1697)
  • Fix bug in bulk_update when pk field is not id (#1698)
  • Fix mysql uuid compression bug (#1687)
  • Fix comment for fk fields without constraint for mysql (#1679)
  • Removed no_delay option for postgres, as it wasn't doing anything (#1677)

0.21.5

19 Jul 09:23
Compare
Choose a tag to compare

Added

  • Propagate _create_db parameter to RegisterTortoise. (#1676)

0.21.4

03 Jul 10:35
Compare
Choose a tag to compare

Added

  • Add ObjectDoesNotExistError to show better 404 message. (#759)
  • DoesNotExist and MultipleObjectsReturned support 'Type[Model]' argument. (#742)(#1650)
  • Add argument use_tz and timezone to RegisterTortoise. (#1649)
  • Support await tortoise.contrib.fastapi.RegisterTortoise. (#1662)
  • Add tortoise.contrib.test.init_memory_sqlite. (#1657)

Fixed

  • Fix update_or_create errors when field value changed. (#1584)
  • Fix bandit check error (#1643)
  • Fix potential race condition in ConnectionWrapper (#1656)
  • Fix py312 warning for datetime.utcnow (#1661)
  • Fix reusing values and value_list queries (#780)

Changed

  • Remove obsolete loop._selector from contrib/test. (#659)(#1636)

0.21.3

01 Jun 10:00
Compare
Choose a tag to compare

0.21.3

Fixed

  • Fix bulk_update when using source_field for pk (#1633)

0.21.2

25 May 15:19
8f83a75
Compare
Choose a tag to compare

Added

  • Add create_unique_index argument to M2M field and default if it is true (#1620)

0.21.1

24 May 17:03
7160e75
Compare
Choose a tag to compare

Fixed

  • Fix error on using old style pk=True

0.21.0

23 May 20:38
Compare
Choose a tag to compare

Added

  • Enhancement for FastAPI lifespan support (#1371)
  • Add __eq__ method to Q to more easily test dynamically-built queries (#1506)
  • Added PlainToTsQuery function for postgres (#1347)
  • Allow field's default keyword to be async function (#1498)
  • Add support for queryset slicing. (#1341)

Fixed

  • Fix DatetimeField use '__year' report 'int' object has no attribute 'utcoffset'. (#1575)
  • Fix bulk_update when using custom fields. (#1564)
  • Fix optional parameter in pydantic_model_creator does not work for pydantic v2. (#1551)
  • Fix get_annotations now evaluates annotations in the default scope instead of the app namespace. (#1552)
  • Fix get_or_create method. (#1404)
  • Use index_name instead of BaseSchemaGenerator._generate_index_name to generate index name.
  • Use subquery for count() and exists() in QuerySet to match count result to QuerySet result. (#1607)

Changed

  • Change utils.chunk from function to return iterables lazily.
  • Removed lower bound of id keys in generated pydantic models. (#1602)
  • Rename Field initial arguments pk/index to primary_key/db_index. (#1621)
  • Renamed Model.check method to Model._check to avoid naming collision issues (#1559) (#1550)

Breaking Changes

  • bulk_create now does not return anything. (#1614)