2014-11-23 52 views
1

我在想这个任务是相当微不足道的,但我没有运气在Google上搜索它。如果我有一个User表,那就有upload_list关系成表Videos,你怎么清除upload_list表呢?如何从SQLAlchemy关系子表中删除所有行?

我构建这样说:

class Users(base): 
    __tablename__ = 'users' 
    id = Column(Integer, primary_key=True) 
    email = Column(String(100), unique=True) 
    password = Column(String(255)) 
    fullname = Column(String(255)) 
    photo = Column(String(255)) 
    last_updated = Column(DateTime()) 

    upload_lists = relationship('UploadLists', cascade="all, delete, delete-orphan") 


class UploadLists(base): 
    __tablename__ = 'upload_lists' 
    id = Column(Integer, primary_key=True) 
    list_id = Column(String(255), unique=True) 
    user_id = Column(Integer, ForeignKey('users.id')) 
    user = relationship("Users") 

    videos = relationship('Videos', cascade="all, delete, delete-orphan") 


class Videos(base): 
    __tablename__ = 'videos' 
    id = Column(Integer, primary_key=True) 
    video_id = Column(String(255), unique=True) 
    title = Column(String(255)) 
    description = Column(String(255)) 
    upload_date = Column(DateTime) 
    thumbnail_url = Column(Text()) 
    thumbnail_file = Column(Text()) 
+0

放下桌子并重新创建它? – IanAuld 2014-11-23 04:38:32

+0

..但是其他用户的所有其他'upload_lists'数据都将被删除。 – swdev 2014-11-23 09:15:10

回答

0

呀,看了this,该解决方案是非常明显的实际。这里所说: s.query(models.UploadLists).filter(models.UploadLists.user_id == user.id).delete()

但尽管如此,上述模型似乎没有一个正确的级联删除configuration.Deleting的UploadList对于某些用户仍然留下所有的留在表Videos其相关视频。现在就开始工作吧,如果你知道答案,那么你在这里留下答案真是太好了。如果它是正确答案,我会将其标记为已接受:)