From 1a305ea8b0f20376faf0f7f650fa22d4ca505be4 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 13 Aug 2020 16:18:03 +0200 Subject: [PATCH] Fix migrations to use unique key --- freqtrade/freqtradebot.py | 2 ++ freqtrade/persistence/migrations.py | 6 +++--- tests/test_freqtradebot.py | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 038bf1f4f..dac3b7ce1 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -1263,7 +1263,9 @@ class FreqtradeBot: except InvalidOrderException as exception: logger.warning('Unable to fetch order %s: %s', order_id, exception) return False + trade.update_order(order) + # Try update amount (binance-fix) try: new_amount = self.get_real_amount(trade, order, order_amount) diff --git a/freqtrade/persistence/migrations.py b/freqtrade/persistence/migrations.py index 55825436d..15e5f56bf 100644 --- a/freqtrade/persistence/migrations.py +++ b/freqtrade/persistence/migrations.py @@ -108,14 +108,14 @@ def migrate_trades_table(decl_base, inspector, engine, table_back_name: str, col def migrate_open_orders_to_trades(engine): engine.execute(""" - insert into orders (trade_id, order_id, ft_order_side) - select id, open_order_id, + insert into orders (trade_id, ft_pair, order_id, ft_order_side) + select id trade_id, pair ft_pair, open_order_id, case when close_rate_requested is null then 'buy' else 'sell' end ft_order_side from trades where open_order_id is not null union all - select id, stoploss_order_id, 'stoploss' + select id trade_id, pair ft_pair, stoploss_order_id order_id, 'stoploss' ft_order_side from trades where stoploss_order_id is not null """) diff --git a/tests/test_freqtradebot.py b/tests/test_freqtradebot.py index 17d1a7ea3..a907ce5c2 100644 --- a/tests/test_freqtradebot.py +++ b/tests/test_freqtradebot.py @@ -1396,7 +1396,7 @@ def test_handle_stoploss_on_exchange_trailing(mocker, default_conf, fee, })) cancel_order_mock = MagicMock() - stoploss_order_mock = MagicMock() + stoploss_order_mock = MagicMock(return_value={'id': 13434334}) mocker.patch('freqtrade.exchange.Exchange.cancel_stoploss_order', cancel_order_mock) mocker.patch('freqtrade.exchange.Exchange.stoploss', stoploss_order_mock)