Hi there, I have two tables mapped like this:
jobs = Table("jobs", __meta__, Column("jobno", Unicode(15), primary_key=True), Column("created", DateTime, nullable=False, default=datetime.now), Column("deleted", Boolean, nullable=False, default=False)) class Job(object): @constructor def __init__(self, jobno=None): if jobno: self.jobno = jobno mapper(Job, jobs) pages = Table("pages", __meta__, Column("jobno", Unicode(15), ForeignKey("jobs.jobno"), primary_key=True), Column("pagename", Unicode(30), primary_key=True), Column("created", DateTime, nullable=False, default=datetime.now), Column("deleted", Boolean, nullable=False, default=False), Column("current_version", Integer)) class Page(object): @constructor def __init__(self, job=None, pagename=None): if job: self.job = job if pagename: self.pagename = pagename self.currentversion = PageVersion(self, 1) def addVersion(self): self.currentversion = PageVersion(self, self.currentversion.version+1) return self.currentversion mapper(Page, pages, properties={ 'job': relation(Job, backref=backref('pages', cascade="all, delete-orphan")), 'currentversion': relation(PageVersion, foreignkey=pages.c.current_version, primaryjoin=and_(pages.c.jobno==pageversions.c.jobno, pages.c.pagename==pageversions.c.pagename, pages.c.current_version==pageversions.c.version), post_update=True), 'versions': relation(PageVersion, cascade="all, delete-orphan", order_by=pageversions.c.version, backref='page', lazy=False) }) The problem is that if I create Job instances before ever referencing Page, they have no "pages" property, since it's declared in the Page mapper. The solution would obviously be to compile my mappers manually - but is there a way to turn of this deferred mapper compilation behaviour? Arnar _______________________________________________ Sqlalchemy-users mailing list Sqlalchemy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users