Releases: pallets-eco/flask-sqlalchemy
Releases · pallets-eco/flask-sqlalchemy
2.5.1
Fixed compatibility with SQLAlchemy 1.4 and Python 2.7.
2.5.0
Fixed compatibility with SQLAlchemy 1.4.
2.4.4
Fixes an issue with CPython 3.8.4.
2.4.3
2.4.2
2.4.1
2.4.0
2.3.2
2.3.1
Install or upgrade
Install from PyPI with pip:
pip install -U Flask-SQLAlchemy
Changelog
- If a model has a table name that matches an existing table in the metadata,
use that table. Fixes a regression where reflected tables were not picked up
by models. (#551) - Raise the correct error when a model has a table name but no primary key.
(#556) - Fix
repr
on models that don't have an identity because they have not been
flushed yet. (#555) - Allow specifying a
max_per_page
limit for pagination, to avoid users
specifying high values in the request args. (#542) - For
paginate
witherror_out=False
, the minimum value forpage
is
1 andper_page
is 0. (#558)
2.3.0
Install or upgrade
Install from PyPI with pip:
pip install -U Flask-SQLAlchemy
Changelog
- Multiple bugs with
__tablename__
generation are fixed. Names will be
generated for models that define a primary key, but not for single-table
inheritance subclasses. Names will not override adeclared_attr
.
PrimaryKeyConstraint
is detected. (#541) - Passing an existing
declarative_base()
asmodel_class
to
SQLAlchemy.__init__
will use this as the base class instead of creating
one. This allows customizing the metaclass used to construct the base.
(#546) - The undocumented
DeclarativeMeta
internals that the extension uses for
binds and table name generation have been refactored to work as mixins.
Documentation is added about how to create a custom metaclass that does not
do table name generation. (#546) - Model and metaclass code has been moved to a new
models
module.
_BoundDeclarativeMeta
is renamed toDefaultMeta
; the old name will be
removed in 3.0. (#546) - Models have a default
repr
that shows the model name and primary key.
(#530) - Fixed a bug where using
init_app
would cause connectors to always use the
current_app
rather than the app they were created for. This caused issues
when multiple apps were registered with the extension. (#547)