Indicaties zijn eenvoudig te maken. Voor één kolom met index=True
parameter zoals hieronder:
customer_code = Column(Unicode(15),unique=True,index=True)
Maar als je meer controle wilt over de naam en opties, gebruik dan de expliciete Index() constructie:
Index('customers_search_vector_indx', Customer.__table__.c.search_vector, postgresql_using='gin')
Triggers kunnen ook worden gemaakt, maar die moeten nog steeds SQL
zijn -gebaseerd en verslaafd aan de DDL
evenementen. Zie DDL aanpassen voor meer informatie, maar de code kan er ongeveer zo uitzien:
from sqlalchemy import event, DDL
trig_ddl = DDL("""
CREATE TRIGGER customers_search_vector_update BEFORE INSERT OR UPDATE
ON customers
FOR EACH ROW EXECUTE PROCEDURE
tsvector_update_trigger(search_vector,'pg_catalog.english',customer_code,customer_name);
""")
tbl = Customer.__table__
event.listen(tbl, 'after_create', trig_ddl.execute_if(dialect='postgresql'))
Sidenote:ik weet niet hoe ik tsvector
moet configureren datatype:verdient een aparte vraag.