Skip to content

support psycopg2cffi features under their own versioning scheme #3439

@sqlalchemy-bot

Description

@sqlalchemy-bot

Migrated issue, originally created by Pablo Marti (@pmarti)

Hi there,

I have a User model class with a profile attribute marked as mutable

class User(db.Model):
    ...
    profile = db.Column(MutableDict.as_mutable(JSONB()))

This works perfectly under python2.7, but now when I issue a query using pypy 2.6 I get this:

Traceback (most recent call last):
  File "/Users/pablo/.virtualenvs/drop/src/flask/flask/app.py", line 1537, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/pablo/.virtualenvs/drop/src/flask/flask/app.py", line 1523, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/pablo/Development/drop-server/drop/api/decorators.py", line 73, in decorated_function
    .get(user_id)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/query.py", line 818, in get
    return self._get_impl(ident, loading.load_on_ident)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/query.py", line 851, in _get_impl
    return fallback_fn(self, key)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/loading.py", line 217, in load_on_ident
    return q.one()
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/query.py", line 2472, in one
    ret = list(self)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/loading.py", line 84, in instances
    util.raise_from_cause(err)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/loading.py", line 69, in instances
    rows = [proc(row) for row in fetch]
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/orm/loading.py", line 430, in _instance
    state.manager.dispatch.load(state, context)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/event/attr.py", line 258, in __call__
    fn(*args, **kw)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/ext/mutable.py", line 428, in load
    val = cls.coerce(key, val)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/ext/mutable.py", line 638, in coerce
    return Mutable.coerce(key, value)
  File "/Users/pablo/.virtualenvs/drop/site-packages/sqlalchemy/ext/mutable.py", line 403, in coerce
    raise ValueError(msg % (key, type(value)))
ValueError: Attribute 'profile' does not accept objects of type <type 'list'>

Dependencies:

SQLAlchemy==1.0.4
psycopg2cffi==2.7.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingsqlalchemy.extextension modules, most of which are ORM related

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions