指標 作成は簡単です。 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
の構成方法がわかりません データ型:別の質問に値します。