On Tue, Jun 24, 2014 at 3:35 PM, Mike Bayer <[email protected]>
wrote:
>
> 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.
>
>
Oops there were some additional filters I left out, but this is added
before the final query:
subq = (subq.order_by(AppDeployment.realized.desc())
.subquery(name='t_ordered'))
Not sure why it isn't working, but today my coworker an I massively
rewrote one of the other methods to avoid this same issue, so maybe
we should try the same for this one... though it would be nice to know
what I goofed here, but not sure what additional information I can
give that would help offhand...
--
- Ken Lareau
--
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.