2021-07-13 12:08:36 +02:00
|
|
|
# Postgres support in LND
|
|
|
|
|
|
|
|
With the introduction of the `kvdb` interface, LND can support multiple database
|
|
|
|
backends. One of the supported backends is Postgres. This document
|
|
|
|
describes how it can be configured.
|
|
|
|
|
|
|
|
## Building LND with postgres support
|
|
|
|
|
2021-12-13 15:32:33 +01:00
|
|
|
Since `lnd v0.14.1-beta` the necessary build tags to enable postgres support are
|
|
|
|
already enabled by default. The default release binaries or docker images can
|
|
|
|
be used. To build from source, simply run:
|
2021-07-13 12:08:36 +02:00
|
|
|
|
|
|
|
```shell
|
2021-12-13 15:32:33 +01:00
|
|
|
⛰ make install
|
2021-07-13 12:08:36 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
## Configuring Postgres for LND
|
|
|
|
|
|
|
|
In order for LND to run on Postgres, an empty database should already exist. A
|
|
|
|
database can be created via the usual ways (psql, pgadmin, etc). A user with
|
|
|
|
access to this database is also required.
|
|
|
|
|
|
|
|
Creation of a schema and the tables is handled by LND automatically.
|
|
|
|
|
|
|
|
## Configuring LND for Postgres
|
|
|
|
|
|
|
|
LND is configured for Postgres through the following configuration options:
|
|
|
|
|
|
|
|
* `db.backend=postgres` to select the Postgres backend.
|
|
|
|
* `db.postgres.dsn=...` to set the database connection string that includes
|
|
|
|
database, user and password.
|
|
|
|
* `db.postgres.timeout=...` to set the connection timeout. If not set, no
|
|
|
|
timeout applies.
|
2021-12-13 15:32:33 +01:00
|
|
|
|
|
|
|
Example as follows:
|
|
|
|
```
|
|
|
|
[db]
|
|
|
|
db.backend=postgres
|
|
|
|
db.postgres.dsn=postgresql://dbuser:dbpass@127.0.0.1:5432/dbname
|
|
|
|
db.postgres.timeout=0
|
|
|
|
```
|
|
|
|
Connection timeout is disabled, to account for situations where the database
|
|
|
|
might be slow for unexpected reasons.
|