If I understand what you're saying, the problem is that set _creation_order() specifies an ordering across all columns from all mixins. But shouldn't it suffice to specify the "local" ordering of the columns within a given mixin, and then process the mixins in __mro__ order? (FWIW I worked around my particular problem by making the Columns non-@declared_attr, eliminating ForeignKey parameters (which are cls-dependent), and creating cls-dependent ForeignKeyConstraints in a cls-dependent __table_args__.)
On Thu, Aug 25, 2016 at 4:24 PM -0400, "Mike Bayer" <mike...@zzzcomputing.com> wrote: the @declarative_attr object would need util.set_creation_order() applied and the _MapperConfig._scan_attributes() would need to take this into account. However, it would not behave well across multiple mixins. The mixins must be scanned in __mro__ order first. So it would be of limited use for there to be an ordering under @declared_attr. On 08/25/2016 02:46 PM, Seth P wrote: > I was just bitten by this issue. Is it still the case that there is no way to > specify the order of two columns declared in a mixin using @declared_attr? > -- You received this message because you are subscribed to a topic in the Google Groups "sqlalchemy" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/sqlalchemy/OA-n_pY0tuM/unsubscribe. To unsubscribe from this group and all its topics, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout. -- 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 https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.