On 8/10/15 10:55 AM, [email protected] wrote:
Hello,
I use reflection with automap_base to load my database schema.
|
# my code currently looks
Base=automap_base()
Base.prepare(engine,reflect=True)
|
And for now, I want to configure the Base to take in account some
inheritance relationships.
In database, inheritance are modeled by :
|
--basetable
CREATE TABLE `hardware`(
`id`INT UNSIGNED NOT NULL AUTO_INCREMENT,
`type`VARCHAR(8)NOT NULL,--indicates the type of children used
PRIMARY KEY (`id`));
--children tables (usesame id of hardware)
CREATE TABLE `hdw_xxx`(
`id`INT UNSIGNED NOT NULL,
...
PRIMARY KEY (`id`));
CREATE TABLE `hdw_yyy`(
`id`INT UNSIGNED NOT NULL,
...
PRIMARY KEY (`id`));
|
There is some proper way to do this ?
you need to build out the structure of classes which inherit up front.
you can still use reflection for pulling in the columns. see the example
at
http://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/automap.html#using-automap-with-explicit-declarations.
Here's also a test from the test suite, doing the same thing:
Base = automap_base()
class Joined(Base):
__tablename__ = 'joined_base'
type = Column(String)
__mapper_args__ = {
"polymorphic_identity": "u0",
"polymorphic_on": type}
class SubJoined(Joined):
__tablename__ = 'joined_inh'
__mapper_args__ = {"polymorphic_identity": "u1"}
Base.prepare(engine=testing.db, reflect=True)
Thanks you
--
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]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.
--
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.