将 SQLAlchemy ORM 对象与磁盘上的外部文件同步



我正在使用SQLAlchemy ORM来表示MySQL数据库的数据模型。假设对于我的一个 ORM 实体类型,磁盘上存储着一个辅助数据的外部文件,数据库行和文件之间具有一对一的关联。

是否有良好的软件模式可以遵循以使ORM对象的实例与外部文件保持同步?

例如,理想的做法是使用某种类型的 setter 将数据附加到 ORM 对象的实例,然后该 setter 将在内部保留数据,并在对象持久化到数据库时将其写入磁盘。

此外,文件的删除应与从数据库中删除ORM对象同步进行。

我猜我需要利用 SQLAlchemy 中的事件侦听器系统来注册具有这些状态转换的回调。但是我不确定执行此操作的最佳方法,应该在哪里注册事件侦听器,如何将此逻辑封装在特定 ORM 实体类型中,以及如何将任意数据存储在不映射到数据库列的 ORM 实体中。

这个库 https://pypi.org/project/sqlalchemy-media/可能会满足你的需要

最新更新