[schema] fix unique together index handling
We now provide a more compact indexname, using the schema constraint
entity type and the position of the columns set in the entity type
unique constraints list.
This avoids a nasty name truncation issue.
The UniqueTogetherError object is made smarter: it computes the
rtypes, abstracting the underlying backend (pg/sqlserver vs sqlite).
The `user friendly` adapter is much simplified since there is no
longer any truncation issue.
Uses a new logilab.database version (ticket #151507) and a new yams
version (ticket #189299)
Closes #2514939
[jcr: disable hooks when temporarily dropping CWUniqueTogetherConstraint entities]
What's new in CubicWeb 3.18?
============================
The migration script does not handle sqlite nor mysql instances.
New functionalities
--------------------
* add a security debugging tool
(see `#2920304 <http://www.cubicweb.org/2920304>`_)
* the primary view display controller (uicfg) now has a
`set_fields_order` method similar to the one available for forms
API changes
-----------
* not really an API change, but the entity permission checks are now
systematically deferred to an operation, instead of a) trying in a
hook and b) if it failed, retrying later in an operation
* The default value storage for attributes is no longer String, but
Bytes. This opens the road to storing arbitrary python objects, e.g.
numpy arrays, and fixes a bug where default values whose truth value
was False were not properly migrated.
* `symmetric` relations are no more handled by an rql rewrite but are
now handled with hooks (from the `activeintegrity` category); this
may have some consequences for applications that do low-level database
manipulations or at times disable (some) hooks.
* `unique together` constraints (multi-columns unicity constraints)
get a `name` attribute that maps the CubicWeb contraint entities to
corresponding backend index.
Deprecation
---------------------
* ``pyrorql`` sources have been deprecated. Multisource will be fully dropped
in the next version. If you are still using pyrorql, switch to ``datafeed``
**NOW**!
* the old multi-source system
Deprecated Code Drops
----------------------
* ``ldapuser`` have been dropped; use ``ldapfeed`` now
(see `#2936496 <http://www.cubicweb.org/2936496>`_)
* action ``GotRhythm`` was removed, make sure you do not
import it in your cubes (even to unregister it)
(see `#3093362 <http://www.cubicweb.org/3093362>`_)
* all 3.8 backward compat is gone
* all 3.9 backward compat (including the javascript side) is gone