Показатели са лесни за създаване. За една колона с index=True
параметър като по-долу:
customer_code = Column(Unicode(15),unique=True,index=True)
Но ако искате повече контрол върху името и опциите, използвайте изричната конструкция Index():
Index('customers_search_vector_indx', Customer.__table__.c.search_vector, postgresql_using='gin')
Задействания могат също да бъдат създадени, но те трябва да са SQL
-базиран и свързан към DDL
събития. Вижте Персонализиране на DDL за повече информация, но кодът може да изглежда подобно на това:
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'))
Странична бележка:Не знам как да конфигурирам tsvector
тип данни:заслужава отделен въпрос.