Pregunta

Estoy usando SqlAlchemy para interactuar con una base de datos PostgreSQL existente.

Necesito acceder a datos organizados en una relación de muchos a muchos. La documentación describe cómo crear relaciones, pero no puedo encontrar un ejemplo para cargar cuidadosamente y consultar una existente.

¿Fue útil?

Solución

Consultar una relación existente no es realmente diferente a crear una nueva. Prácticamente escribe el mismo código, pero especifica los nombres de tabla y columna que ya están allí, y, por supuesto, no necesitará SQLAlchemy para emitir las declaraciones CREATE TABLE .

Ver http://www.sqlalchemy.org/ docs / 05 / mappers.html # muchos a muchos . Todo lo que necesita hacer es especificar las columnas de clave externa para sus tablas principales, secundarias y de asociación existentes como en el ejemplo, y especificar autoload = True para completar los otros campos en sus Tablas. Si su tabla de asociación almacena información adicional, como casi siempre lo hacen, debe dividir su relación de muchos a muchos en dos relaciones de muchos a uno.

Aprendí SQLAlchemy mientras trabajaba con MySQL. Con esa base de datos siempre tuve que especificar las relaciones de clave externa porque no eran restricciones explícitas de la base de datos. Puede tener suerte y poder reflexionar aún más desde su base de datos, pero puede preferir usar algo como http : //pypi.python.org/pypi/sqlautocode para codificar todo el esquema de la base de datos y evitar el retraso de la reflexión.

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