Hi, All the docs only explain how to do inheritance using a simple "parent > child" model. But what about "parent > child > grandchild"? I tried the following but I get an error:
<code> thing_table = Table( 'thing', metadata, Column( 'uuid', String(36), primary_key=True, default=func.uuid_generate_v1() ), Column( 'reporter', String(30), nullable=False ) Column( 'type', String(30), nullable=False ) ) mineral_table = Table('mineral', metadata, Column('uuid', String(36), primary_key=True, ForeignKey ('thing.uuid')), Column( 'family', String(30), nullable=False ) ); crystal_table = Table( 'crystal', metadata, Column('uuid', String(36), ForeignKey('mineral.uuid')), Column('label', String(30))) class Thing(object): pass class Mineral(Thing): pass class Crystal(Mineral): pass mapper( Thing, thing_table, polymorphic_on=thing_table.c.type, polymorphic_identity='thing' ) mapper(Mineral, mineral_table, inherits=Thing, polymorphic_identity='mineral') mapper(Crystal, crystal_table, inherits=Mineral, polymorphic_identity='crystal') </code> When I create the mappings like this, the model loads correctly, but I cannot create "Crystal" instances: >>> x = Crystal() >>> x.family='kjdfh' >>> session.save(x) >>> session.flush() 2009-11-05 01:21:32,795 sqlalchemy.engine.base.Engine.0x..2c INFO BEGIN 2009-11-05 01:21:32,801 sqlalchemy.engine.base.Engine.0x..2c INFO SELECT uuid_generate_v1() AS uuid_generate_v1_1 2009-11-05 01:21:32,801 sqlalchemy.engine.base.Engine.0x..2c INFO {} 2009-11-05 01:21:32,805 sqlalchemy.engine.base.Engine.0x..2c INFO INSERT INTO thing (uuid, type) VALUES (%(uuid)s, %(type)s) 2009-11-05 01:21:32,806 sqlalchemy.engine.base.Engine.0x..2c INFO {'type': 'rock', 'uuid': '2bb7593c-c9a1-11de-8367-001d720c19db'} 2009-11-05 01:21:32,814 sqlalchemy.engine.base.Engine.0x..2c INFO INSERT INTO mineral (uuid, family) VALUES (%(uuid)s, %(family)s) 2009-11-05 01:21:32,815 sqlalchemy.engine.base.Engine.0x..2c INFO {'uuid': '2bb7593c-c9a1-11de-8367-001d720c19db', 'family': 'kjdfh'} 2009-11-05 01:21:32,896 sqlalchemy.engine.base.Engine.0x..2c INFO COMMIT Oddly, the "Crystal" instance is never saved. Any ideas? I am running this using SQLAlchemy 0.4.6. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---