From bc516db3f85e570a6ec7e641bb0f8267fe04a0c9 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 16 Nov 2025 09:11:02 +0100 Subject: [PATCH] refactor: add generic "migrate" method --- freqtrade/freqtradebot.py | 4 ++-- freqtrade/util/migrations/__init__.py | 15 +++++++++++++-- freqtrade/util/migrations/binance_mig.py | 4 ++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index e1b6fa674..6485b5d11 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -63,7 +63,7 @@ from freqtrade.rpc.rpc_types import ( from freqtrade.strategy.interface import IStrategy from freqtrade.strategy.strategy_wrapper import strategy_safe_wrapper from freqtrade.util import FtPrecise, MeasureTime, PeriodicCache, dt_from_ts, dt_now -from freqtrade.util.migrations.binance_mig import migrate_binance_futures_names +from freqtrade.util.migrations import migrate_live_content from freqtrade.wallets import Wallets @@ -229,7 +229,7 @@ class FreqtradeBot(LoggingMixin): Called on startup and after reloading the bot - triggers notifications and performs startup tasks """ - migrate_binance_futures_names(self.config) + migrate_live_content(self.config, self.exchange) set_startup_time() self.rpc.startup_messages(self.config, self.pairlists, self.protections) diff --git a/freqtrade/util/migrations/__init__.py b/freqtrade/util/migrations/__init__.py index 8a9f10949..50f7dff01 100644 --- a/freqtrade/util/migrations/__init__.py +++ b/freqtrade/util/migrations/__init__.py @@ -1,12 +1,23 @@ from freqtrade.exchange import Exchange -from freqtrade.util.migrations.binance_mig import migrate_binance_futures_data +from freqtrade.util.migrations.binance_mig import ( + migrate_binance_futures_data, + migrate_binance_futures_names, +) from freqtrade.util.migrations.funding_rate_mig import migrate_funding_fee_timeframe -def migrate_data(config, exchange: Exchange | None = None): +def migrate_data(config, exchange: Exchange | None = None) -> None: """ Migrate persisted data from old formats to new formats """ migrate_binance_futures_data(config) migrate_funding_fee_timeframe(config, exchange) + + +def migrate_live_content(config, exchange: Exchange | None = None) -> None: + """ + Migrate database content from old formats to new formats + Used for dry/live mode. + """ + migrate_binance_futures_names(config) diff --git a/freqtrade/util/migrations/binance_mig.py b/freqtrade/util/migrations/binance_mig.py index 248d5810d..b85ee721d 100644 --- a/freqtrade/util/migrations/binance_mig.py +++ b/freqtrade/util/migrations/binance_mig.py @@ -14,6 +14,10 @@ logger = logging.getLogger(__name__) def migrate_binance_futures_names(config: Config): + """ + Migrate binance futures names in both database and data files. + This is needed because ccxt naming changed from "BTC/USDT" to "BTC/USDT:USDT" + """ if not ( config.get("trading_mode", TradingMode.SPOT) == TradingMode.FUTURES and config["exchange"]["name"] == "binance"