2.7.3
Small release which includes some changes to the BM25 sorting
algorithm and the addition of a JSONField for use with the new
JSON1 extension.
2.7.2
Small release with bugfixes to the setup script.
I've also cleaned up some missing APIs in the FTS5Model to
support more flexible use of either FTSModel or FTS5Model.
2.7.1
Small release which includes fixes to the setup script.
Particularly, if you did not have Cython installed, the
installation would completely fail. This was fixed.
2.7.0
New APIs, features, and performance improvements.
Notable changes and new features
- PasswordField that uses the bcrypt module.
- Added new Model Meta.only_save_dirty flag to, by default,
only save fields that have been modified.
- Added support for upsert() on MySQL (in addition to SQLite).
- Implemented SQLite ranking functions (rank and bm25) in Cython,
and changed both the Cython and Python APIs to accept weight
values for every column in the search index. This more closely
aligns with the APIs provided by FTS5. In fact, made the APIs
for FTS4 and FTS5 result ranking compatible.
- Major changes to the :ref:sqlite_ext module. Function callbacks
implemented in Python were implemented in Cython (e.g. date
manipulation and regex processing) and will be used if Cython
is available when Peewee is installed.
- Support for the experimental new FTS5 SQLite search extension.
- Added :py:class:SearchField for use with the SQLite FTS
extensions.
- Added :py:class:RowIDField for working with the special rowid
column in SQLite.
- Added a model class validation hook to allow model subclasses
to perform any validation after class construction. This is
currently used to ensure that FTS5Model subclasses do not
violate any rules required by the FTS5 virtual table.
Bugs fixed
- #751, fixed some very broken behavior in the MySQL migrator
code. Added more tests.
- #718, added a RetryOperationalError mixin that will try
automatically reconnecting after a failed query. There was
a bug in the previous error handler implementation that
made this impossible, which is also fixed.