I have 2 related classes
• ProvisionedAccess (auth policy)
• Credentials (public/private key)
ProvisionedAccess has 2 relationships:
• keyset_active -- the active keyset, identified by having an is_active
flag
• keys_all -- all historical keys
I've implemented them as below.
the problem is when generating a new keyset. i do the following (in order)
* deactivate existing Credentials (is_active=False)
* flush
* generate new Credentials
* flush
everything is fine, until i try to stash the relationship for some
operations
* access.keyset_active = new_Credentials
* flush
this flush removes the `provisioned_access_id` from the old Credentials,
which causes an error.
I'm not sure the best way to proceed. I need to figure out a way in which:
a- i don't generate SQL when updating that relationship. i only use it as a
utility for selects and passing around objects.
b- i let the ORM do everything
any suggestions on either approach would be appreciated. i know nothing
about cascading relationships in the ORM.
--
keyset_active = sa.orm.relationship("Credentials",
primaryjoin="and_(ProvisionedAccess.id==Credentials.provisioned_access_id,
Credentials.is_active==True)",
uselist=False
)
keys_all = sa.orm.relationship("Credentials",
primaryjoin="ProvisionedAccess.id==Credentials.provisioned_access_id",
order_by="Credentials.id.desc()"
)
--
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.