SQLALCHEMY Dichiarativo: definizione di trigger e indici (Postgres 9)
-
30-10-2019 - |
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