[sql gen] Control size of index name using an md5 hash
When using concatenation of table and column, we may hit the backend size limit
on index names, which results on truncated name (64 for postgres). Then we may
have conflict or be unable to find expected index on later synchronization
attempt.
This is done by monkeypatching lgdb for now to avoid dependancy problems.
Unique and primary key indices of entity types handling is left to the backend,
as they are not explicitly named.
See https://www.logilab.org/ticket/4789189
Closes #13821949
[tox]
envlist =
py27-{cubicweb,dataimport,devtools,entities,etwist,ext,hooks,server,migractions,sobjects,web,wsgi},
py34-{cubicweb,dataimport,devtools,entities,ext,hooks,server,migractions,sobjects,web,wsgi}
[testenv]
usedevelop = True
sitepackages = True
whitelist_externals =
/usr/bin/touch
deps =
-rdev-requirements.txt
py34: -e.
cubicweb: -r{toxinidir}/cubicweb/test/requirements.txt
devtools: -r{toxinidir}/cubicweb/devtools/test/requirements.txt
entities: -r{toxinidir}/cubicweb/entities/test/requirements.txt
etwist: -r{toxinidir}/cubicweb/etwist/test/requirements.txt
ext: -r{toxinidir}/cubicweb/ext/test/requirements.txt
hooks: -r{toxinidir}/cubicweb/hooks/test/requirements.txt
server: -r{toxinidir}/cubicweb/server/test/requirements.txt
migractions: -r{toxinidir}/cubicweb/server/test/requirements.txt
sobjects: -r{toxinidir}/cubicweb/sobjects/test/requirements.txt
web: -r{toxinidir}/cubicweb/web/test/requirements.txt
wsgi: -r{toxinidir}/cubicweb/wsgi/test/requirements.txt
commands =
py34-cubicweb: touch {envdir}/share/cubicweb/cubes/__init__.py
py34-server: touch {envdir}/share/cubicweb/cubes/__init__.py
py34-migractions: touch {envdir}/share/cubicweb/cubes/__init__.py
py34-sobjects: touch {envdir}/share/cubicweb/cubes/__init__.py
py34-web: touch {envdir}/share/cubicweb/cubes/__init__.py
cubicweb: {envpython} -m pip install --upgrade --no-deps --quiet git+git://github.com/logilab/yapps@master#egg=yapps
cubicweb: {envpython} -m pytest {toxinidir}/cubicweb/test {posargs}
dataimport: {envpython} -m pytest {toxinidir}/cubicweb/dataimport/test {posargs}
devtools: {envpython} -m pytest {toxinidir}/cubicweb/devtools/test {posargs}
entities: {envpython} -m pytest {toxinidir}/cubicweb/entities/test {posargs}
etwist: {envpython} -m pytest {toxinidir}/cubicweb/etwist/test {posargs}
ext: {envpython} -m pytest {toxinidir}/cubicweb/ext/test {posargs}
hooks: {envpython} -m pytest {toxinidir}/cubicweb/hooks/test {posargs}
server: {envpython} -m pytest {toxinidir}/cubicweb/server/test {posargs} --ignore={toxinidir}/cubicweb/server/test/unittest_migractions.py
migractions: {envpython} -m pytest {toxinidir}/cubicweb/server/test/unittest_migractions.py {posargs}
sobjects: {envpython} -m pytest {toxinidir}/cubicweb/sobjects/test {posargs}
web: {envpython} -m pytest {toxinidir}/cubicweb/web/test {posargs}
wsgi: {envpython} -m pytest {toxinidir}/cubicweb/wsgi/test {posargs}
[testenv:doc]
changedir = doc
whitelist_externals =
sphinx-build
deps =
sphinx
commands = sphinx-build -b html -d {envtmpdir}/doctrees . {envtmpdir}/html
[pytest]
python_files = *test_*.py