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
repron models that don't have an identity because they have not been
flushed yet. (#555) - Allow specifying a
max_per_pagelimit for pagination, to avoid users
specifying high values in the request args. (#542) - For
paginatewitherror_out=False, the minimum value forpageis
1 andper_pageis 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.
PrimaryKeyConstraintis detected. (#541) - Passing an existing
declarative_base()asmodel_classto
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
DeclarativeMetainternals 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
modelsmodule.
_BoundDeclarativeMetais renamed toDefaultMeta; the old name will be
removed in 3.0. (#546) - Models have a default
reprthat shows the model name and primary key.
(#530) - Fixed a bug where using
init_appwould cause connectors to always use the
current_apprather than the app they were created for. This caused issues
when multiple apps were registered with the extension. (#547)