在SQLAlchemy的表类中,是否有一种方法可以定义/创建该表的触发器和索引?
例如,如果我有一个基本表格...
class Customer(DeclarativeBase):
__tablename__ = 'customers'
customer_id = Column(Integer, primary_key=True,autoincrement=True)
customer_code = Column(Unicode(15),unique=True)
customer_name = Column(Unicode(100))
search_vector = Column(tsvector) ## *Not sure how do this yet either in sqlalchemy*.
我现在想创建一个触发器来更新"search_vector"。
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);
然后我想把这个字段也作为索引添加...
create index customers_search_vector_indx ON customers USING gin(search_vector);
在我从应用程序进行任何类型的数据库重新生成后,我必须为tsvector列执行添加列操作,定义触发器,然后从psql执行索引语句。这并不是世界末日,但很容易忘记其中的一步。我非常注重自动化,因此如果我可以在应用程序设置期间完成所有这些操作,那就更好了!