Changelog
*********


Version 2.2
===========

Released on February 27, 2017, codename Dubnium

* Minimum SQLAlchemy version is 0.8 due to use of
  "sqlalchemy.inspect".

* Added support for custom "query_class" and "model_class" as args
  to the "SQLAlchemy" constructor. (#328)

* Allow listening to SQLAlchemy events on "db.session". (#364)

* Allow "__bind_key__" on abstract models. (#373)

* Allow "SQLALCHEMY_ECHO" to be a string. (#409)

* Warn when "SQLALCHEMY_DATABASE_URI" is not set. (#443)

* Don't let pagination generate invalid page numbers. (#460)

* Drop support of Flask < 0.10. This means the db session is always
  tied to the app context and its teardown event. (#461)

* Tablename generation logic no longer accesses class properties
  unless they are "declared_attr". (#467)


Version 2.1
===========

Released on October 23rd 2015, codename Caesium

* Table names are automatically generated in more cases, including
  subclassing mixins and abstract models.

* Allow using a custom MetaData object.

* Add support for binds parameter to session.


Version 2.0
===========

Released on August 29th 2014, codename Bohrium

* Changed how the builtin signals are subscribed to skip non Flask-
  SQLAlchemy sessions.  This will also fix the attribute error about
  model changes not existing.

* Added a way to control how signals for model modifications are
  tracked.

* Made the "SignallingSession" a public interface and added a hook
  for customizing session creation.

* If the "bind" parameter is given to the signalling session it will
  no longer cause an error that a parameter is given twice.

* Added working table reflection support.

* Enabled autoflush by default.

* Consider "SQLALCHEMY_COMMIT_ON_TEARDOWN" harmful and remove from
  docs.


Version 1.0
===========

Released on July 20th 2013, codename Aurum

* Added Python 3.3 support.

* Dropped 2.5 compatibility.

* Various bugfixes

* Changed versioning format to do major releases for each update
  now.


Version 0.16
============

* New distribution format (flask_sqlalchemy)

* Added support for Flask 0.9 specifics.


Version 0.15
============

* Added session support for multiple databases


Version 0.14
============

* Make relative sqlite paths relative to the application root.


Version 0.13
============

* Fixed an issue with Flask-SQLAlchemy not selecting the correct
  binds.


Version 0.12
============

* Added support for multiple databases.

* Expose Flask-SQLAlchemy's BaseQuery as *db.Query*.

* Set default query_class for *db.relation*, *db.relationship*, and
  *db.dynamic_loader* to Flask-SQLAlchemy's BaseQuery.

* Improved compatibility with Flask 0.7.


Version 0.11
============

* Fixed a bug introduced in 0.10 with alternative table
  constructors.


Version 0.10
============

* Added support for signals.

* Table names are now automatically set from the class name unless
  overriden.

* Model.query now always works for applications directly passed to
  the SQLAlchemy constructor.  Furthermore the property now raises an
  RuntimeError instead of being None.

* added session options to constructor.

* fixed a broken *__repr__*

* *db.Table* is now a factor function that creates table objects.
  This makes it possible to omit the metadata.


Version 0.9
===========

* applied changes to pass the Flask extension approval process.


Version 0.8
===========

* added a few configuration keys for creating connections.

* automatically activate connection recycling for MySQL connections.

* added support for the Flask testing mode.


Version 0.7
===========

* Initial public release
