camptocamp / c2cgeoportal

c2cgeoportal application
http://geomapfish.org
Other
64 stars 46 forks source link

Problem with script themev1tov2 - non null constraint #2776

Closed gnerred closed 7 years ago

gnerred commented 7 years ago

Version 2.1.1

Error : null value in column "url" violates not-null constraint

But I have no null values for "url" column in my layerv1 table.

Traceback (most recent call last):
  File ".build/venv/bin/themev1tov2", line 11, in <module>
    sys.exit(main())
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/c2cgeoportal/scripts/themev1tov2.py", line 103, in main
    layer_v1tov2(session, layer)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/c2cgeoportal/scripts/themev1tov2.py", line 195, in layer_v1tov2
    new_layer.restrictionareas = layer.restrictionareas
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 237, in __get__
    return self.impl.get(instance_state(instance), dict_)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 584, in get
    value = self.callable_(state, passive)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/strategies.py", line 557, in _load_for_state
    return self._emit_lazyload(session, state, ident_key, passive)
  File "<string>", line 1, in <lambda>
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/strategies.py", line 635, in _emit_lazyload
    result = q.all()
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2645, in all
    return list(self)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 2796, in __iter__
    self.session._autoflush()
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1373, in _autoflush
    util.raise_from_cause(e)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 202, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1363, in _autoflush
    self.flush()
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2137, in flush
    self._flush(objects)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2257, in _flush
    transaction.rollback(_capture_exception=True)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2221, in _flush
    flush_context.execute()
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 389, in execute
    rec.execute(self)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 548, in execute
    uow
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj
    mapper, table, insert)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 799, in _emit_insert_statements
    execute(statement, multiparams)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 945, in execute
    return meth(self, multiparams, params)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
    context)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1393, in _handle_dbapi_exception
    exc_info
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 202, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1182, in _execute_context
    context)
  File "/var/www/vhosts/cartoriviera_preprod/private/cartoriviera_geomapfish_v2/cartoriviera_geomapfish/.build/venv/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 469, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (psycopg2.IntegrityError) null value in column "url" violates not-null constraint
DETAIL:  Failing row contains (663, null, null, null, null, image/png).
 [SQL: 'INSERT INTO main.layer_wmts (id, url, layer, style, matrix_set, image_type) VALUES (%(id)s, %(url)s, %(layer)s, %(style)s, %(matrix_set)s, %(image_type)s)'] [parameters: {'style': None, 'image_type': 'image/png', 'layer': None, 'url': None, 'matrix_set': None, 'id': 663}]
kalbermattenm commented 7 years ago

I just bumped into the same error.

If I get it right, this fix is not part of release 2.1.1, right ?

Any idea, when there is going to be a release, or how to circumvent to issue ?

kalbermattenm commented 7 years ago

OK... I "stupidly" copied the modifications from #2779

sbrunner commented 7 years ago

Effectively it's not in the version 2.1.1