Hello, I have an existing CMS-like application which uses joined table inheritance at its core. Basically I have a base class Content from which all other classes (Folder, Document, Event, File, ...) inherit.=20 It works wonderfully well. This is my (Postgre)SQL schema if you are=20 interested:=20 https://gist.githubusercontent.com/silenius/2e0f69fadfde9877e32c5b778efd39a= f/raw/f08e2af2f7cd239c865777d1e54342ee53608520/sa.sql
Now we'd like to support multiple languages. We plan to add an=20 additional table for each inherited class (additional translation=20 table approach), so basically we'll have something like: content_type | | content --- content_translation | | document --- document_translation Currently I have a polymorphic_on=3Dtables.content.c.content_type_id on=20 the base mapper (Content) and polymorphic_identity=3Dget_type_id(config, 'some_content_type_name') for each inherited mapper (the get_type_id function simply return the content_type ID: https://gist.github.com/silenius/25b8f46192b5b9b23477fe0c541bd9f3 ) As the application is quite large I'd like to avoid having to refactor a lot of code. I wondered what would be the best SQLAlchemy approach to do this? For example let's say I have something like this in my application: session.query(Document).all() which SQLAlchemy translates as: SELECT .. FROM content=20 JOIN document ON content.id =3D document.content_id Is there some mapper configuration that I could change so that it translates now as: SELECT .. FROM content=20 JOIN content_translation=20 ON content.id =3D content_translation.content_id=20 AND content_translation.lang =3D 'some_language_code'=20 JOIN document ON document.content_id =3D content.id=20 JOIN document_translation=20 ON document_translation.document_id =3D document.content_id=20 AND document_translation.lang =3D 'some_language_code' If not, what would be the best approach? Thanks ! -- Julien Cigar Belgian Biodiversity Platform (http://www.biodiversity.be) PGP fingerprint: EEF9 F697 4B68 D275 7B11 6A25 B2BB 3710 A204 23C0 No trees were killed in the creation of this message. However, many electrons were terribly inconvenienced. -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
signature.asc
Description: PGP signature
