У меня есть таблица с несколькими зависимыми таблицами, которые я хочу каскадно удалить. У меня проблемы с каскадом слишком далеко. Некоторый код поможет объяснить.
class Map(Base):
....
#One to many relationship between the Map and Tile.
#Each Map is made up of many tiles
tiles = relationship('Tile', lazy='joined', backref='map',
cascade="all, delete")
class Tile(Base):
....
#Reference to Map class.
map_id = Column(Integer,
ForeignKey('maps.id'),
nullable=False)
#Reference to graphics for this tile
#This is a many to one relationship, each Graphic is used by many Tiles
graphics_id = Column(Integer,
ForeignKey("graphics.id"),
nullable=False)
graphics = relationship("Graphic", uselist=False)
class Graphic(Base):
....
#Nothing special here
Проблема в том, что при удалении карты также удаляется графика, а это не то, что мне нужно
Я предполагаю, что это связано с каскадом.
Как мне это исправить, чтобы при удалении класса карты были удалены плитки, но не графика?