:released: Sat May 27 2006
.. change::
:tags:
:tickets:
overhaul to Engine system so that what was formerly the SQLEngine
is now a ComposedSQLEngine which consists of a variety of components,
including a Dialect, ConnectionProvider, etc. This impacted all the
db modules as well as Session and Mapper.
.. change::
:tags:
:tickets:
create_engine now takes only RFC-1738-style strings:
``driver://user:passwordhost:port/database``
**update** this format is generally but not exactly RFC-1738,
including that underscores, not dashes or periods, are accepted in the
"scheme" portion.
.. change::
:tags:
:tickets: 152
total rewrite of connection-scoping methodology, Connection objects
can now execute clause elements directly, added explicit "close" as
well as support throughout Engine/ORM to handle closing properly,
no longer relying upon __del__ internally to return connections
to the pool.
.. change::
:tags:
:tickets:
overhaul to Session interface and scoping. uses hibernate-style
methods, including query(class), save(), save_or_update(), etc.
no threadlocal scope is installed by default. Provides a binding
interface to specific Engines and/or Connections so that underlying
Schema objects do not need to be bound to an Engine. Added a basic
SessionTransaction object that can simplistically aggregate transactions
across multiple engines.
.. change::
:tags:
:tickets:
overhaul to mapper's dependency and "cascade" behavior; dependency logic
factored out of properties.py into a separate module "dependency.py".
"cascade" behavior is now explicitly controllable, proper implementation
of "delete", "delete-orphan", etc. dependency system can now determine at
flush time if a child object has a parent or not so that it makes better
decisions on how that child should be updated in the DB with regards to deletes.
.. change::
:tags:
:tickets:
overhaul to Schema to build upon MetaData object instead of an Engine.
Entire SQL/Schema system can be used with no Engines whatsoever, executed
solely by an explicit Connection object. the "bound" methodology exists via the
BoundMetaData for schema objects. ProxyEngine is generally not needed
anymore and is replaced by DynamicMetaData.
.. change::
:tags:
:tickets: 167
true polymorphic behavior implemented, fixes
.. change::
:tags:
:tickets: 147
"oid" system has been totally moved into compile-time behavior;
if they are used in an order_by where they are not available, the order_by
doesn't get compiled, fixes
.. change::
:tags:
:tickets:
overhaul to packaging; "mapping" is now "orm", "objectstore" is now
"session", the old "objectstore" namespace gets loaded in via the
"threadlocal" mod if used
.. change::
:tags:
:tickets:
mods now called in via "import <modname>". extensions favored over
mods as mods are globally-monkeypatching
.. change::
:tags:
:tickets: 154
fix to add_property so that it propagates properties to inheriting
mappers
.. change::
:tags:
:tickets:
backrefs create themselves against primary mapper of its originating
property, primary/secondary join arguments can be specified to override.
helps their usage with polymorphic mappers
.. change::
:tags:
:tickets: 31
"table exists" function has been implemented
.. change::
:tags:
:tickets: 98
"create_all/drop_all" added to MetaData object
.. change::
:tags:
:tickets:
improvements and fixes to topological sort algorithm, as well as more
unit tests
.. change::
:tags:
:tickets:
tutorial page added to docs which also can be run with a custom doctest
runner to ensure its properly working. docs generally overhauled to
deal with new code patterns
.. change::
:tags:
:tickets:
many more fixes, refactorings.
.. change::
:tags:
:tickets:
migration guide is available on the Wiki at
https://www.sqlalchemy.org/trac/wiki/02Migration
=============
0.3 Changelog
=============
.. changelog::