I should have also indicated that the addition of sqlalchemy.sql.text fixes 
the small mixin example.  The little script below works, but I don't know 
if it is a sketchy hack, or a safe long term solution:

from sqlalchemy import * 
from sqlalchemy.orm import * 
from sqlalchemy.ext.declarative import declarative_base, declared_attr 
from sqlalchemy.sql import text as sql_text

Base = declarative_base() 

class A_TableDef(object): 
    __tablename__ = 'a'
    
    id = Column(Integer, primary_key=True)
    track_type       = Column(SmallInteger, nullable = False)

    @declared_attr
    def __table_args__(cls):
        return (Index("idx_track_type2", "track_type",
                      postgresql_where = sql_text("track_type != 0")),
                )

class A_Model(Base, A_TableDef):
    pass

e = create_engine("postgresql://postgres:postgrespw@localhost:5433/edms", 
echo =True)

Base.metadata.drop_all(e)
Base.metadata.create_all(e)

-- 
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