Hi, is it possible to combine joined and single table inheritance in the same inheritance hierarchy?
In the code at the bottom I want to use the persons table as a base for the Person, Employee and Manager classes and the employees table to store the particular fields of Employee and Manager. I've run this code using PostgreSql and it correctly flushes the Person and Employee instances but when it wants to flush the Manager instance gives the following error: /home/fernando/.pythonrepo/SQLAlchemy-0.4.5-py2.5.egg/sqlalchemy/ engine/base.py in _handle_dbapi_exception(self, e, statement, parameters, cursor) 940 if self.__close_with_result: 941 self.close() --> 942 raise exceptions.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect) 943 finally: 944 del self._reentrant_error <class 'sqlalchemy.exceptions.ProgrammingError'>: (ProgrammingError) relation "employees_person_id_seq" does not exist 'select nextval(\'"employees_person_id_seq"\')' None Anyone have any suggestions? thanks, Fernando class Person(object): def __init__(self, name): self.name = name def __repr__(self): return self.__class__.__name__ + " " + self.name class Employee(Person): def __init__(self, name, employee_data): self.name = name self.employee_data = employee_data def __repr__(self): return self.__class__.__name__ + " " + self.name + " " + self.employee_data class Manager(Employee): def __init__(self, name, employee_data, manager_data): self.name = name self.employee_data = employee_data self.manager_data = manager_data def __repr__(self): return self.__class__.__name__ + " " + self.name + " " + self.manager_data persons_table = Table('persons', metadata, Column('person_id', Integer, primary_key=True), Column('name', String(50)), Column('type', String(20), nullable=False) ) employees_table = Table('employees', metadata, Column('person_id', Integer, ForeignKey('persons.person_id'), primary_key=True), Column('employee_data', String(50)), Column('manager_data', String(50)), ) person_mapper = mapper(Person, persons_table, \ polymorphic_on=persons_table.c.type, polymorphic_identity='person') employee_mapper = mapper(Employee, employees_table, inherits=Person, polymorphic_identity='engineer') manager_mapper = mapper(Manager, inherits=employee_mapper, polymorphic_identity='manager') metadata.create_all(engine); Session = scoped_session(sessionmaker(bind=engine, autoflush=True, transactional=True)) session = Session(); session.save(Person('fer')) session.save(Employee('e', 'e1')) session.save(Manager('m', 'e2', 'm1')) session.flush() --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---