【发布时间】:2021-11-06 00:52:51
【问题描述】:
给定以下类和数据库表
class Location:
datacenter_name: str
path: str
locations = Table(
"locations",
mapper_registry.metadata,
Column("id", Integer, primary_key=True, autoincrement=True),
Column("path", String, nullable=False),
Column("datacenter_name", String, nullable=False),
)
mapper_registry.map_imperatively(Location, locations)
backup_registry = Table(
"backup_registry",
mapper_registry.metadata,
Column("id", Integer, primary_key=True, autoincrement=True),
Column("source_location_id", ForeignKey("locations.id"), nullable=False),
Column("backup_location_id", ForeignKey("locations.id"), nullable=False),
)
我想将 backup_registry 表映射到 BackupRegistry 实例,但我需要
将所有行映射到单个属性,例如:
class BackupRegistry:
backups: Dict[Location, list[Location]]
使用与 location 相同的方法会给我一个 BackupRegistry 实例
每行mapper_registry.map_imperatively(BackupRegistry, backup_registry)
对如何通过经典映射实现这一点有任何想法吗?
【问题讨论】:
-
我对注册表格式感到困惑。你能不能有类似
location.backup_locations的东西,它是给定location的备份位置列表?
标签: python database sqlalchemy