我正在尝试为我的 sqlalchemy 数据库实现版本控制(使用此处的示例:http: //docs.sqlalchemy.org/en/rel_0_7/orm/examples.html#versioned-objects和来自源压缩包的 history_meta.py .)
使用该示例,我能够成功获取旧版本的对象:
history = Person.__history_mapper__.class_
old_person = history.filter(Person.id = instance.id,
history.version==someoldversion).one()
我还可以获得它指向的任何对象的旧版本。
它在 sqlalchemy 版本控制代码中的实现方式是添加一个名为 person_history 的额外表。此表包含 Person 在特定版本中的所有字段 + 一个版本字段。
但是,我需要对关系进行版本控制。例如,也许这个人曾经有一辆汽车,但现在没有了,我需要得到他拥有的版本。谁能建议扩展示例以使其成为可能的最佳方法?