Question

Existe-t-il un moyen dans la classe Sqlalchemy d'une table pour définir / créer des déclencheurs et des index pour ce tableau?

Par exemple, si j'avais une table de base comme ...

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*.

Je veux maintenant créer un déclencheur pour mettre à jour "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);

Ensuite, je voulais ajouter ce champ également comme un index ...

create index customers_search_vector_indx ON customers USING gin(search_vector);

À l'heure actuelle, après avoir fait tout type de régénération de la base de données à partir de mon application, je dois faire la colonne Ajouter pour la colonne TSVector, la définition de déclenchement, puis l'indice d'index de PSQL. Pas la fin du monde, mais il est facile d'oublier un pas. Je suis tout au sujet de l'automatisation, donc si je peux que tout cela se passe pendant la configuration des applications, alors bonus!

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top