Pregunta

¿Hay alguna manera en la clase Sqlalchemy de una tabla para definir/crear desencadenantes e índices para esa tabla?

Por ejemplo, si tuviera una tabla básica como ...

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

Ahora quiero crear un disparador para actualizar "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);

Entonces quería agregar ese campo también como índice ...

create index customers_search_vector_indx ON customers USING gin(search_vector);

En este momento, después de hacer cualquier tipo de regeneración de la base de datos de mi aplicación, tengo que hacer la columna Agregar para la columna TSVector, la definición de activación y luego la declaración de índice de PSQL. No es el fin del mundo, pero es fácil olvidar un paso. ¡Me refiero a la automatización, así que si puedo hacer que todo esto suceda durante la configuración de las aplicaciones, entonces bonificación!

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top