Есть ли способ в классе 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, определение триггера, а затем инструкцию index из psql. Не конец света, но легко забыть шаг. Я все об автоматизации, так что если я смогу все это сделать во время установки приложений, тогда бонус!