我有兩個對象,一個Player對象和一個Team對象。查找並刪除所有空關係列表對象
我想查找數據庫中沒有玩家的所有Team對象並刪除它們。
class Team(db.Model):
__tablename__ = 'Team'
id = db.Column(db.Integer, primary_key=True)
players = db.relationship('Player', backref='team', lazy='dynamic')
這是我已經試過到目前爲止(失敗):
all_teams = Team.query.all()
for a_team in all_teams:
if not a_team.players: # have also tried this with a .query.all() and a .all()
db.session.delete(a_team)
db.session.commit()
我在做什麼錯?我應該如何解決這個問題?
這工作。是的,這只是一次性的事情,因爲我修正了導致空隊的錯誤,所以我只想清理空隊。不幸的是,我仍然在if語句中保留「not」,所以所有錯誤的球隊都被刪除了,哈哈。愚蠢的我。你知道一種恢復變化的方法嗎? – GangstaGraham
哦,夥計。抱歉!我希望你有一個備份。使用MySQL,您可以通過在刪除之前將日誌重放到一個條目來恢復刪除操作,但這看起來很痛苦,您可能需要調查更多,因爲我自己從來沒有做過。 – Miguel
嗯,問題不大,數據庫實際上還在開發中,我們計劃在下週左右發貨,我們可能需要稍後發貨,以便在我們發貨前收集更多數據。那麼,至少我瞭解了備份的重要性,所以從現在開始我會有一個備份。我想最好是在沒有備份的情況下丟失數據,而不是在發貨後丟失數據。 – GangstaGraham