On 6/23/14, 8:09 PM, Ken Lareau wrote:
>
>     if apptier:
>         subq = (
>             Session.query(
>                 Package.pkg_name,
>                 Package.version,
>                 Package.revision,
>                 AppDefinition.app_type,
>                 AppDeployment.environment
>             ).join(Deployment)
>              .join(AppDeployment)
>              .join(AppDefinition)
>              .filter(Package.pkg_name == package_name)
>              .filter(AppDeployment.environment == env)
>              .filter(AppDeployment.status != 'invalidated'))
>
>         [...]
>
>         # The actual column name must be used in the subquery
>         # usage below; DB itself should be corrected
>         versions = (Session.query(subq.c.appType,
>                     subq.c.version,
>                     subq.c.revision)
>                     .group_by(subq.c.appType, subq.c.environment)
>                     .all())
>  
> The parts in the subquery work fine, but the access of the 'column'
> in the final query leads to this:
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/home/klareau/repos/git/tagopsdb/tagopsdb/deploy/deploy.py",
> line 234, in find_deployed_version
>     .group_by(subq.c.appType, subq.c.environment)
>   File
> "/home/klareau/.virtualenvs/tds/lib/python2.6/site-packages/sqlalchemy/util/_collections.py",
> line 174, in __getattr__
>     raise AttributeError(key)
> AttributeError: environment
>
> This is not completely surprising, but I'm uncertain as the best way
> to fix this... help? :)
nothing is obviously wrong, assuming you are calling "subquery()" on
subq at the end.  It will be a select() construct which will have a
column called ".environment" on the .c. collection because
AppDeployment.environment is present.   Can't say why this attribute is
not here without full details.


-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to