From e525c6694bca344591a4fb8b4c66e0df8f527eef Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 8 Oct 2023 09:30:21 +0200 Subject: [PATCH] Add ft_cancel_reason column to order object --- freqtrade/persistence/migrations.py | 9 +++++---- freqtrade/persistence/trade_model.py | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/freqtrade/persistence/migrations.py b/freqtrade/persistence/migrations.py index 69d37530f..717a13f90 100644 --- a/freqtrade/persistence/migrations.py +++ b/freqtrade/persistence/migrations.py @@ -220,6 +220,7 @@ def migrate_orders_table(engine, table_back_name: str, cols_order: List): funding_fee = get_column_def(cols_order, 'funding_fee', '0.0') ft_amount = get_column_def(cols_order, 'ft_amount', 'coalesce(amount, 0.0)') ft_price = get_column_def(cols_order, 'ft_price', 'coalesce(price, 0.0)') + ft_cancel_reason = get_column_def(cols_order, 'ft_cancel_reason', 'null') # sqlite does not support literals for booleans with engine.begin() as connection: @@ -227,13 +228,13 @@ def migrate_orders_table(engine, table_back_name: str, cols_order: List): insert into orders (id, ft_trade_id, ft_order_side, ft_pair, ft_is_open, order_id, status, symbol, order_type, side, price, amount, filled, average, remaining, cost, stop_price, order_date, order_filled_date, order_update_date, ft_fee_base, funding_fee, - ft_amount, ft_price + ft_amount, ft_price, ft_cancel_reason ) select id, ft_trade_id, ft_order_side, ft_pair, ft_is_open, order_id, status, symbol, order_type, side, price, amount, filled, {average} average, remaining, cost, {stop_price} stop_price, order_date, order_filled_date, order_update_date, {ft_fee_base} ft_fee_base, {funding_fee} funding_fee, - {ft_amount} ft_amount, {ft_price} ft_price + {ft_amount} ft_amount, {ft_price} ft_price, {ft_cancel_reason} ft_cancel_reason from {table_back_name} """)) @@ -328,8 +329,8 @@ def check_migrate(engine, decl_base, previous_tables) -> None: # if ('orders' not in previous_tables # or not has_column(cols_orders, 'funding_fee')): migrating = False - # if not has_column(cols_orders, 'ft_price'): - if not has_column(cols_trades, 'is_stop_loss_trailing'): + # if not has_column(cols_trades, 'is_stop_loss_trailing'): + if not has_column(cols_orders, 'ft_cancel_reason'): migrating = True logger.info(f"Running database migration for trades - " f"backup: {table_back_name}, {order_table_bak_name}") diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index ea48d5466..3a90271d5 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -68,6 +68,7 @@ class Order(ModelBase): ft_is_open: Mapped[bool] = mapped_column(nullable=False, default=True, index=True) ft_amount: Mapped[float] = mapped_column(Float(), nullable=False) ft_price: Mapped[float] = mapped_column(Float(), nullable=False) + ft_cancel_reason: Mapped[str] = mapped_column(String(CUSTOM_TAG_MAX_LENGTH), nullable=True) order_id: Mapped[str] = mapped_column(String(255), nullable=False, index=True) status: Mapped[Optional[str]] = mapped_column(String(255), nullable=True)