Skip to content

SQL Helper

This page contains some help if you want to edit your sqlite db.

Install sqlite3

Sqlite3 is a terminal based sqlite application. Feel free to use a visual Database editor like SqliteBrowser if you feel more comfortable with that.

Ubuntu/Debian installation

sudo apt-get install sqlite3

Using sqlite3 via docker-compose

The freqtrade docker image does contain sqlite3, so you can edit the database without having to install anything on the host system.

docker-compose exec freqtrade /bin/bash
sqlite3 <database-file>.sqlite

Open the DB

.open <filepath>

Table structure

List tables


Display table structure

.schema <table_name>

Get all trades in the table

SELECT * FROM trades;

Fix trade still open after a manual exit on the exchange


Manually selling a pair on the exchange will not be detected by the bot and it will try to sell anyway. Whenever possible, /forceexit should be used to accomplish the same thing.
It is strongly advised to backup your database file before making any manual changes.


This should not be necessary after /forceexit, as force_exit orders are closed automatically by the bot on the next iteration.

UPDATE trades
SET is_open=0,
  close_profit = close_rate / open_rate - 1,
  close_profit_abs = (amount * <close_rate> * (1 - fee_close) - (amount * (open_rate * (1 - fee_open)))),
WHERE id=<trade_ID_to_update>;


UPDATE trades
SET is_open=0,
  close_date='2020-06-20 03:08:45.103418',
  close_profit_abs = (amount * 0.19638016 * (1 - fee_close) - (amount * (open_rate * (1 - fee_open)))),
WHERE id=31;

Remove trade from the database

Use RPC Methods to delete trades

Consider using /delete <tradeid> via telegram or rest API. That's the recommended way to deleting trades.

If you'd still like to remove a trade from the database directly, you can use the below query.

DELETE FROM trades WHERE id = <tradeid>;
DELETE FROM trades WHERE id = 31;


This will remove this trade from the database. Please make sure you got the correct id and NEVER run this query without the where clause.

Use a different database system


By using one of the below database systems, you acknowledge that you know how to manage such a system. Freqtrade will not provide any support with setup or maintenance (or backups) of the below database systems.


Freqtrade supports PostgreSQL by using SQLAlchemy, which supports multiple different database systems.

Installation: pip install psycopg2-binary

Usage: ... --db-url postgresql+psycopg2://<username>:<password>@localhost:5432/<database>

Freqtrade will automatically create the tables necessary upon startup.

If you're running different instances of Freqtrade, you must either setup one database per Instance or use different users / schemas for your connections.

MariaDB / MySQL

Freqtrade supports MariaDB by using SQLAlchemy, which supports multiple different database systems.

Installation: pip install pymysql

Usage: ... --db-url mysql+pymysql://<username>:<password>@localhost:3306/<database>