Yes, I tried mix-in approach, and it works, thanks.
From: sqlalchemy@googlegroups.com [mailto:sqlalchemy@googlegroups.com] On Behalf Of Robert Forkel Sent: 20 ноября 2012 г. 17:09 To: sqlalchemy@googlegroups.com Subject: Re: [sqlalchemy] Inheriting a functionality in SQLA As far as i know each declarative Base has its own metadata registry. You are using two. Why not use multiple mixins to inherit the columns? Am 20.11.2012 10:31 schrieb "AlexVhr" <viho...@gmail.com>: I'm trying to incapsulate some functionality (some columns mainly) into base classes to inherit my models from them. The setup looks like this: class EntityTemplate(): @declared_attr def __tablename__(cls): return cls.__name__.lower() id = Column(Integer(), primary_key=True) timestamp = Column(DateTime()) class DocumentTemplate(EntityTemplate): date = Column(Date()) number = Column(String(5)) Entity = declarative_base(cls=EntityTemplate, name='Entity') Document = declarative_base(cls=DocumentTemplate, name='Document') I'm trying to use it like this: class Customer(Entity): name = Column(String(25)) address = Column(String(50)) class Invoice(Document): customer_id = Column(Integer, ForeignKey('customer.id')) customer = relationship("Customer") total = Column(Numeric(10,2)) Entity.metadata.create_all(engine) Document.metadata.create_all(engine) But on the last line I get this: sqlalchemy.exc.NoReferencedTableError: Foreign key associated with column 'invoice.customer_id' could not find table 'customer' with which to generate a foreign key to target column 'id' If I inherit Invoice from Entity instead of Document, everything is fine (except the fact that columns date and number are missing). Why? (I'm using SQLAlchemy-0.7.9-py3.2). Thanks! -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To view this discussion on the web visit https://groups.google.com/d/msg/sqlalchemy/-/2IsSRLhqqqAJ. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com <mailto:sqlalchemy%2bunsubscr...@googlegroups.com> . For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to <mailto:sqlalchemy@googlegroups.com> sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to <mailto:sqlalchemy+unsubscr...@googlegroups.com> sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at <http://groups.google.com/group/sqlalchemy?hl=en> http://groups.google.com/group/sqlalchemy?hl=en. -- 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.