stable/freqtrade/commands/db_commands.py

41 lines
1.1 KiB
Python

import logging
from typing import Any, Dict
from freqtrade.configuration.config_setup import setup_utils_configuration
from freqtrade.enums.runmode import RunMode
logger = logging.getLogger(__name__)
def start_db_convert(args: Dict[str, Any]) -> None:
from sqlalchemy.orm import make_transient
from freqtrade.persistence import Trade, init_db
from freqtrade.persistence.pairlock import PairLock
config = setup_utils_configuration(args, RunMode.UTIL_NO_EXCHANGE)
init_db(config['db_url'], False)
session_target = Trade._session
init_db(config['db_url_from'], False)
# print(f"{id(sessionA)=}, {id(sessionB)=}")
trade_count = 0
pairlock_count = 0
for trade in Trade.get_trades():
trade_count += 1
make_transient(trade)
for o in trade.orders:
make_transient(o)
session_target.add(trade)
session_target.commit()
for pairlock in PairLock.query:
pairlock_count += 1
make_transient(pairlock)
session_target.add(pairlock)
session_target.commit()
logger.info(f"Migrated {trade_count} Trades, and {pairlock_count} Pairlocks.")