On Tue, Mar 20, 2018 at 08:32:14PM -0400, Mike Bayer wrote:
> I think it would be a lot easier to have the corresponding translation
> linked off using relationship().   can you work with that?

I could .. :) I'll make some "helper functions" or maybe a custom Query
object, with maybe some proxy-like properties too

Thanks

> 
> On Tue, Mar 20, 2018 at 9:19 AM, Julien Cigar <julien.ci...@gmail.com> wrote:
> > 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 sqlalchemy+unsubscr...@googlegroups.com.
> > To post to this group, send email to sqlalchemy@googlegroups.com.
> > Visit this group at https://groups.google.com/group/sqlalchemy.
> > For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> 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 sqlalchemy+unsubscr...@googlegroups.com.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> Visit this group at https://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Attachment: signature.asc
Description: PGP signature

Reply via email to