| 87 | |
| 88 | |
| 89 | class Child(Versioned, Base): |
| 90 | __tablename__ = "child" |
| 91 | |
| 92 | id = Column(Integer, primary_key=True) |
| 93 | data = Column(String) |
| 94 | |
| 95 | def new_version(self, session): |
| 96 | # expire parent's reference to us |
| 97 | session.expire(self.parent, ["child"]) |
| 98 | |
| 99 | # create new version |
| 100 | Versioned.new_version(self, session) |
| 101 | |
| 102 | # re-add ourselves to the parent |
| 103 | self.parent.child = self |
| 104 | |
| 105 | |
| 106 | Base.metadata.create_all(engine) |