Domanda

Sto usando SqlAlchemy per interagire con un database PostgreSQL esistente.

Devo accedere ai dati organizzati in una relazione molti-a-molti. La documentazione descrive come creare relazioni, ma non riesco a trovare un esempio per caricare e interrogare ordinatamente una esistente.

È stato utile?

Soluzione

L'interrogazione di una relazione esistente non è molto diversa dalla creazione di una nuova. Scrivi praticamente lo stesso codice ma specifichi i nomi di tabella e colonna che sono già lì, e ovviamente non avrai bisogno di SQLAlchemy per emettere le istruzioni CREATE TABLE .

Vedi http://www.sqlalchemy.org/ docs / 05 / mappers.html # many-to-many . Tutto quello che devi fare è specificare le colonne di chiave esterna per le tue tabelle padre, figlio e associazione esistenti come nell'esempio e specificare autoload = True per compilare gli altri campi delle tue tabelle. Se la tabella delle associazioni memorizza informazioni aggiuntive, come quasi sempre accade, dovresti semplicemente suddividere la relazione molti-a-molti in due relazioni molti-a-uno.

Ho imparato SQLAlchemy lavorando con MySQL. Con quel database ho sempre dovuto specificare le relazioni di chiave esterna perché non erano vincoli espliciti del database. Potresti essere fortunato ed essere in grado di riflettere ancora di più dal tuo database, ma potresti preferire utilizzare qualcosa come http : //pypi.python.org/pypi/sqlautocode per codificare l'intero schema del database ed evitare il ritardo di riflessione.

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