diff --git a/freqtrade/persistence/custom_data.py b/freqtrade/persistence/custom_data.py index bf72510be..0eb14738c 100644 --- a/freqtrade/persistence/custom_data.py +++ b/freqtrade/persistence/custom_data.py @@ -96,6 +96,10 @@ class CustomDataWrapper: if not CustomDataWrapper.use_db: CustomDataWrapper.custom_data = [] + @staticmethod + def delete_custom_data(trade_id: int) -> None: + _CustomData.session.query(_CustomData).filter(_CustomData.ft_trade_id == trade_id).delete() + @staticmethod def get_custom_data(key: Optional[str] = None, trade_id: Optional[int] = None) -> List[_CustomData]: diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index abbc69f75..a12a842c3 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -1600,8 +1600,7 @@ class Trade(ModelBase, LocalTrade): for order in self.orders: Order.session.delete(order) - for entry in self.custom_data: - _CustomData.session.delete(entry) + CustomDataWrapper.delete_custom_data(trade_id=self.id) _CustomData.session.commit() Trade.session.delete(self)