Domanda

C'è un modo nella classe SQLalchemy di una tabella per definire/creare trigger e indici per quella tabella?

Ad esempio, se avessi una tabella di base come ...

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

Ora voglio creare un trigger per aggiornare "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);

Quindi volevo aggiungere quel campo anche come indice ...

create index customers_search_vector_indx ON customers USING gin(search_vector);

In questo momento dopo aver eseguito qualsiasi tipo di rigenerazione del database dalla mia app, devo fare la colonna Aggiungi per la colonna TSVector, la definizione del trigger e quindi l'istruzione indice da PSQL. Non la fine del mondo, ma è facile dimenticare un passo. Sono tutto sull'automazione, quindi se riesco a far sì che tutto ciò accada durante la configurazione delle app, quindi il bonus!

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top