External database for pgAdmin user settings¶
The user settings used by pgAdmin are stored in a SQLite database. In this database, many settings are stored, such as preferences, user accounts, auto-discovered servers, and many more.
As SQLite is a file-based database and it can be anywhere in the file system, so it is not designed to take care of failures (no HA support). Furthermore, it isn’t designed to handle multiple connections concurrently reading/writing data to it. Example: In environments such as Kubernetes it may be useful to use an alternate backend to avoid using SQLite on non-ephemeral storage and to allow HA of the settings database.
In order to prevent this, pgAdmin now supports storing user settings in an external database using the new ‘CONFIG_DATABASE_URI’ parameter in the config.py file.
Use SQLite Database¶
In order to use SQLite Database, make sure CONFIG_DATABASE_URI parameter is set to an empty string like ‘’. By default it is set to an empty string in the config.py so if you would like to use SQLite database then no need to change anything.
Use External Database¶
In order to use an external database, make sure CONFIG_DATABASE_URI parameter is set like “dialect+driver://username:password@host:port/database”.
Note It is recommended to create the database in advance.
Use PostgreSQL Database¶
Following are the formats to use PostgreSQL as an external database.
Basic syntax:
postgresql://username:password@host:port/database
Using specific schema (It is recommended to create the schema in advance):
postgresql://username:password@host:port/database?options=-csearch_path=<schema name>
Using default pgpass path for the service account:
postgresql://username@host:port?options=-csearch_path=<schema name>
Specifying pgpass file path:
postgresql://username@host:port?passfile=<path of the pgpass file>&options=-csearch_path=<schema name>