The original version of this document is located at https://docs.qfield.org/how-to/pg-service
A pg_service.conf
file allows to use an named alias for a PostgreSQL server connection. Instead of storing hostname, port, database name and more into the QGIS Project file, these can be stored separately. It is even possible to store username and password in a pg_service.conf
file, to avoid having this stored in clear text in the QGIS Project.
Read more about PostgreSQL services in the QGIS documentation.
If you directly connect from QGIS to your database you can make use of a pg_service.conf
file by placing it in the QField data folder. You can place your file either on the Internal Device Storage or on the SD Card Storage. You can check the path for the QField data folder in the bottom of the About QField
screen in the app.
Usually the path on Android devices looks something like this: /Android/data/ch.opengis.qfield/files/QField
.
Note
Unlike on *NIX systems where the file is named .pg_service.conf
, the file on Android is named pg_service.conf
without a leading dot sign (.
).
QFieldCloud support pg_service.conf
configurations too. You need to configure your PostgreSQL layers with “Offline editing” cloud action and store your service settings on QFieldCloud Project’s Secrets page.
Read more how to configure PostgreSQL service in the QFieldCloud documentation.
pg_service.conf
File for PostgreSQL Connection in QGIS and SecretsBefore beginning, ensure that your PostgreSQL database allows connections from QFieldCloud. Refer to Technical specs for instructions.
pg_service.conf
FileWe first need to set up a configuration file. There are many options to organize this, read more in the PostgreSQL documentation or follow the description below.
On Windows:
Create a file named pg_service.conf
and store it in a convenient location.
On Linux/MacOS/Unix:
Create a file named .pg_service.conf
in your home folder (~
).
Within the file, specify connection parameters for your PostgreSQL database using the following format:
plaintext
[SERVICE_NAME]
host=your_host_or_ip
port=your_port
dbname=your_database_name
user=your_username
password=your_password
Replace placeholders (your_host_or_ip
, your_port
, your_database_name
, your_username
, your_password
) with actual connection details and save the file.
pg_service.conf
, create an environment variable pointing to its location:PGSERVICEFILE
C:\Users\<YourUsername>\AppData\Roaming\postgresql\pg_service.conf
(or your pg_service.conf
file path).Alternatively, you can set environment variables directly in QGIS via Settings > Options > System > Environment. Refer to QGIS System Settings for details.
pg_service.conf
(e.g., [MY_QGIS_DB]
) in the connection details. QGIS will read configuration from pg_service.conf
automatically.pg_service.conf
(e.g., [NINJA_DB]
) in the “Service” field.pg_service.conf
..pg_service.conf
to the secret. Follow Secrets for guidance.