Charger une relation de table plusieurs à plusieurs existante avec sqlalchemy

StackOverflow https://stackoverflow.com/questions/1430584

  •  07-07-2019
  •  | 
  •  

Question

J'utilise SqlAlchemy pour interagir avec une base de données PostgreSQL existante.

Je dois accéder à des données organisées dans une relation plusieurs à plusieurs. La documentation explique comment créer des relations, mais je ne trouve pas d’exemple pour charger et interroger proprement un lien existant.

Était-ce utile?

La solution

Interroger une relation existante n’est pas vraiment différent de la création d’une nouvelle relation. Vous écrivez à peu près le même code, mais vous spécifiez les noms de table et de colonne déjà présents. Évidemment, vous n’avez pas besoin de SQLAlchemy pour émettre les instructions CREATE TABLE .

Voir http://www.sqlalchemy.org/ docs / 05 / mappers.html # plusieurs-à-plusieurs . Il vous suffit de spécifier les colonnes de clé étrangère pour vos tables parent, enfant et d'association existantes, comme dans l'exemple, puis de spécifier autoload = True pour remplir les autres champs de vos tables. Si votre table d'association stocke des informations supplémentaires, comme ils le font presque toujours, vous devez diviser votre relation plusieurs-en-plusieurs en deux relations plusieurs-à-un.

J'ai appris SQLAlchemy en travaillant avec MySQL. Avec cette base de données, je devais toujours spécifier les relations de clé étrangère car elles n'étaient pas des contraintes explicites de la base de données. Vous pourriez avoir de la chance et être capable de réfléchir encore plus à partir de votre base de données, mais vous préférerez peut-être utiliser quelque chose comme http : //pypi.python.org/pypi/sqlautocode pour coder simplement le schéma de base de données et éviter le délai de réflexion.

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