Hi all,

I recently tried to update SQLAlchemy from 0.9.4 to 1.0.4 in a client's 
project. However, I run into an error that is not there with 0.9.4.

It happens for this type of query:

    q = DBSession.query(User) \
                 .filter(User.profile_id.in_(profile_ids)) \
                 .join(Profile)
    q = q.outerjoin(
        CouplePhoto,
        and_(
            User.profile_id==CouplePhoto.profile_id,
            CouplePhoto.avatar==True
        )
    )
    q = q.with_entities(User.profile_id, User.given_name, User.zipcode,
                        CouplePhoto.filename, User.gender, Profile.sex)
    users_data = q.all()
    for u in users_data:
        if u.filename:
            *# the next line causes the error in 1.0.4*
*            u.filename = 'something'*

In 0.9.4, the type of "u" was "KeyedTuple" and in 1.0.4, it's "result". The 
error is "AttributeError: can't set attribute".

The goal of this assignation is to recompute the filename according to the 
original filename (to show a thumb instead of original). It is not saved in 
the database.

Now, I know this is not necessarily good design and I would not have done 
it that way myself. But the code base is probably full of this type of 
thing, mixed with business logic, and trying to fix them is clearly not 
doable in the short term.

And we have to update SQLAlchemy, because some circular reference issue was 
fixed when using Alembic somewhere between 0.9.4 and 1.0.4.

Is there anything I should be aware of to help with this?

Thanks in advance.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to