Skip to content

Connect External Database

Community contibution

Contributor: fengkiej from Rupiah Token

Hummingbot stores trades in a local SQLite for database by default, but it may be limiting for some cases such as sharing data to external system, in some cases user may want to use their own preferred client/server RDBMS for it.

Other RDBMS are supported on Hummingbot through SQLAlchemy, it has included some widely used RDBMS dialects, i.e.:

  • PostgreSQL
  • MySQL
  • Oracle
  • Microsoft SQL Server

These dialects requires separate DBAPI driver to be installed on Hummingbot's conda environment, see SQLAlchemy documentation for more information on appropriate DBAPI driver for each RDBMS. For example, to use PostgreSQL, psycopg2 need to be installed. Run the following command to install it using conda:

conda install psycopg2

To configure RDBMS connection, we need to edit conf_client.yml in the /hummingbot_conf directory.

Note

In past versions of Hummingbot (1.5.0 and below), the conf_client.yml file is named conf_global.yml

- Advanced database options, currently supports SQLAlchemy's included dialects
- Reference: https://docs.sqlalchemy.org/en/13/dialects/

db_engine: sqlite
db_host: 127.0.0.1
db_port: '3306'
db_username: username
db_password: password
db_name: dbname

Configuration parameters

Configuration Parameter Possible Values
db_engine sqlite,postgresql,mysql,oracle,mssql
db_host any string e.g. 127.0.0.1
db_port any string e.g. 3306
db_username any string e.g. username
db_password any string e.g. password
db_name any string e.g. dbname

SQLAlchemy dialects

It is also possible to connect with available SQLAlchemy's external dialects (e.g. Amazon Redshift). But the feature is not currently supported in Hummingbot due to its various DSN format, use this at your own risk.

📘 Additional Resources

In this Youtube Video the Foundation's lead developer Fede, shows you how you can use Docker Compose to launch multiple instances that all save to a single Postgres database.